我有一些列的单元格为“存储为文本的数字”,这会导致其他代码尝试将一个范围复制到另一个范围时出现问题
rng1.Copy Destination:=rng2
目的地范围(rng2
)为空白。没有任何其他数据的这个问题,只是当这些“存储为文本的数字”存在时,所以我需要通过VBA将它们转换为数字。
环顾四周似乎有两种方法,但两种方法都不适用于我......
TextToColumnns:
rng1.Select
Selection.TextToColumns Destination:=Range(rng1), DataType:=xlDelimited
值=值:
Range(rng1).Select
With Selection
.NumberFormat = "General"
.Value = .Value
End With
我发现的其他方法有100多行代码,这肯定不是正确的?
实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
这样的事情出了什么问题:
Public Sub TestMe()
With Selection
.NumberFormat = "0.00"
.Value = .Value
End With
End Sub
答案 1 :(得分: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