我正在处理导入大量数据的宏,目前正在使用.PasteSpecial paste:= xlPasteValues
只要所有范围仅包含数值,这都可以。但是,在某些工作表上,不是使用零,而是使用短划线“ - ”,这会使计算复杂化。我想Excel会将这些视为价值观。
我的临时解决方案是使用循环扫描最后导入的破折号范围,并用零替换它们。由于数据量非常大,我更喜欢一种自动将非数值视为零的解决方案,以提高代码的效率。
重要的是将破折号视为零而不是忽略,因为必须保持定位。
有问题的计算是分配给double的变量数组乘法(包含导入的值)。
答案 0 :(得分:1)
您可以使用Replace执行此操作:
NewValue = Replace(OldValue,"-","0")
答案 1 :(得分:1)
只需一次替换所有-
:
Range("B2:B6").Replace What:="-", Replacement:="0"