我有一个从 C# 自动生成的大型 Excel 工作表,它将所有列输出为文本(由于技术原因无法更改)。我在编写一个将数字列转换为数字的宏时遇到问题,并且可以快速完成(工作表包含 80 列和 20,000 行)。
我尝试遍历所有单元格并调用
If IsNumeric(cell.Value) Then cell.Value = CDec(cell.Value)
这非常慢并且还有一个额外的问题,即我有一个特殊情况,其中以“0xxx”等开头的字符串需要保存为字符串。如果我使用IsNumeric
然后转换为CDec
,我将失去前导 0!
是否有一些简单的技巧可以说检测列中的一个值是否是字符串,然后不处理该列,否则将它们转换为数字,除了我们有前导 0 的情况?