2017-07-12 25 views
0

數點我有一些列具有該是「號碼存儲爲文本」,這是造成與其他代碼試圖一個範圍複製到另一個 rng1.Copy Destination:=rng2存儲爲文本數與VBA

的問題電池目的地範圍(rng2)爲空。沒有任何其他數據的問題,只是當這些「數字存儲爲文本」存在時,所以我需要通過VBA將它們轉換爲數字。

環顧四周似乎有此兩種方法,但也正在爲我...

TextToColumnns:

rng1.Select 
Selection.TextToColumns Destination:=Range(rng1), DataType:=xlDelimited 

值=值:

Range(rng1).Select 
    With Selection 
     .NumberFormat = "General" 
     .Value = .Value 
    End With 

其它方式我發現有100多行代碼長,肯定是不對的?

達到此目的的最佳方法是什麼?

+1

你是什麼意思的,'但也正在爲me'?他們錯誤或不產生所需的輸出? –

回答

0

有什麼問題是這樣的:

Public Sub TestMe() 

    With Selection 
     .NumberFormat = "0.00" 
     .Value = .Value 
    End With 

End Sub 
0

您可以將它們與此轉換:

Function text_to_number(txt As String) As Double 
    text_to_number = txt * 1.0 
End Function 

所以,首先,你需要將它們轉換,並在此之後,複製到另一個地方。 事情是這樣的:

Sub copy_and_paste() 
    Dim numbers(30) As Double 


    'Copping from range A1:A30 
    For i = 1 To 30 
     numbers(i) = text_to_number(Cells(i, 1).Value) 
    Next i 

    'Pasting tn B1:B30 
    For i = i To 30 
     Cells(i, 2).Value = numbers(i) 
    Next i 


End Sub 
+0

如果它有效,我會寫一個更好的解決方案。 –