我每周都会收到一份电子表格,由于我无法控制的各种原因,一些列会以文本形式存储为数字而不是数字。我需要将它们转换为数字,以便稍后在代码中与它们发生的事情。
我现在通过这样做将它们转换为数字:
Dim rng As Range
For Each rng In Range("A:D").Columns
rng.TextToColumns
Next rng
有更好的(即更有效)的方式吗?
我玩过NumberFormat并且它似乎没有用。
提前致谢(如果我已经错过了解决方案,我会道歉 - 我进行了搜索并且没有找到它。)
答案 0 :(得分:10)
<强> Excel中强>:
PasteSpecial
,然后在Operation
下选择Add
VBA
(更改Sheet1
因此,假设A100000
为空):
Sheet1.Range("A100000").Copy
Sheet1.UsedRange.PasteSpecial , xlPasteSpecialOperationAdd
如果将上述内容放入Workbook_Open
事件,则每次打开工作簿时都会自动执行转换。
使用此方法,公式将被保留。
我希望有所帮助!
答案 1 :(得分:8)
来自这个网站http://www.access-programmers.co.uk/forums/showthread.php?t=219316 我有这个想法:
Range("D1:D400") = Range("D1:D400").Value
它完美无缺!
答案 2 :(得分:1)
这更容易:
With Selection
.NumberFormat = "0"
.Value = .Value
End With