VBA:仅复制/粘贴数值

时间:2012-03-06 15:32:08

标签: vba

我正在处理导入大量数据的宏,目前正在使用.PasteSpecial paste:= xlPasteValues

只要所有范围仅包含数值,这都可以。但是,在某些工作表上,不是使用零,而是使用短划线“ - ”,这会使计算复杂化。我想Excel会将这些视为价值观。

我的临时解决方案是使用循环扫描最后导入的破折号范围,并用零替换它们。由于数据量非常大,我更喜欢一种自动将非数值视为零的解决方案,以提高代码的效率。

重要的是将破折号视为零而不是忽略,因为必须保持定位。

有问题的计算是分配给double的变量数组乘法(包含导入的值)。

2 个答案:

答案 0 :(得分:1)

您可以使用Replace执行此操作:

NewValue = Replace(OldValue,"-","0")

答案 1 :(得分:1)

只需一次替换所有-

Range("B2:B6").Replace What:="-", Replacement:="0"