数値のリストを含むExcelシートがあります。 00フォーマットとして図10に示す以下の何かが、それはエラーを示す小さな緑色の矢印を持っている、と私は以下のように、クリックして、「数に変換」を選択する必要があります。テキスト形式を数値形式に変換する
は、どのように私は数字にこれらを変換しますそれを手動で行う必要はありませんか?マクロを記録しようとすると、何も記録されません。
数値のリストを含むExcelシートがあります。 00フォーマットとして図10に示す以下の何かが、それはエラーを示す小さな緑色の矢印を持っている、と私は以下のように、クリックして、「数に変換」を選択する必要があります。テキスト形式を数値形式に変換する
は、どのように私は数字にこれらを変換しますそれを手動で行う必要はありませんか?マクロを記録しようとすると、何も記録されません。
これは、データの最後の行を見つけて、列のテキスト「数値」を変換します。
Sub Convert_Text_Num()
Dim lngCounter As Long
Dim rCell As Range
Dim strRange As String
Dim lngCol As Long
lngCounter = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row 'Find last row of data
lngCol = ActiveCell.Column
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
Col_Letter = vArr(0)
strRange = Col_Letter & "1:" & Col_Letter & lngCounter
For Each rCell In Range(strRange).Cells
rCell.NumberFormat = "General"
rCell.Value = rCell.Value
Next rCell
MsgBox "All Done!", vbOKOnly + vbInformation, Now()
End Sub
いくつかの可能性があります。彼らは本当に数値である場合:時々これで十分です。それ以外の場合は
range("A1:A1000").numberformat="0.00"
range("A1:A1000").value=range("A1:A1000").value 'yes it looks soooo dumb
、それぞれ上)(ベクトルおよび使用CDBLにそれを置きます。
@Skip Intro sollitionは、Excel 2010以上で動作しない場合があります。これは、複数のマシンで結果が得られていないためではありません。エラーもありません。
だから私は私のために正常に動作し、新しいスクリプトを作っ:
Sub convert_text_to_numbers()
Dim varCounter As Integer
Dim varCellInRange, tableRange, startingCell, endingCell As Range
Set startingCell = Cells(1, 1)
Set endingCell = Cells.Cells(Cells.SpecialCells(xlLastCell).Row, Cells.SpecialCells(xlLastCell).Column)
Set tableRange = Range(startingCell, endingCell)
varCounter = 0
For Each varCellInRange In tableRange
If IsNumeric(varCellInRange) Then
varCellInRange.Value = Val(varCellInRange)
varCounter = varCounter + 1
End If
Next
MsgBox ("Converted " & varCounter & " instances")
End Sub
旧答え:
私はこのために少しチートを使用し、それは完璧だと言うことはできませんが、あなたが試すことができますが
列(A:A)の代わりに、コードを少し修正することで特定のセルにアドレス指定することができます。
これらはすべて動作しますが、これは私のために最適です。皆さん、ありがとうございました! – TCassa
私はこれも好きですが、なんらかの理由でそれは私にとってはうまくいきません:) –
@IvanTokarevどのようなエラーが表示されますか? –