2016-09-30 10 views
0

数値のリストを含むExcelシートがあります。 00フォーマットとして図10に示す以下の何かが、それはエラーを示す小さな緑色の矢印を持っている、と私は以下のように、クリックして、「数に変換」を選択する必要があります。テキスト形式を数値形式に変換する

Tooltip Convert To Number

は、どのように私は数字にこれらを変換しますそれを手動で行う必要はありませんか?マクロを記録しようとすると、何も記録されません。

答えて

2

これは、データの最後の行を見つけて、列のテキスト「数値」を変換します。

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 
+0

これらはすべて動作しますが、これは私のために最適です。皆さん、ありがとうございました! – TCassa

+0

私はこれも好きですが、なんらかの理由でそれは私にとってはうまくいきません:) –

+0

@IvanTokarevどのようなエラーが表示されますか? –

5

いくつかの可能性があります。彼らは本当に数値である場合:時々これで十分です。それ以外の場合は

range("A1:A1000").numberformat="0.00" 

range("A1:A1000").value=range("A1:A1000").value 'yes it looks soooo dumb 

、それぞれ上)(ベクトルおよび使用CDBLにそれを置きます。

2

@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)の代わりに、コードを少し修正することで特定のセルにアドレス指定することができます。

関連する問題