我有一个写在表单上的矩阵
Destination.Resize(UBound(Matrix, 2), UBound(Matrix, 1)).value = Application.Transpose(Matrix)
在这个单元格中,我想用NaN(不是数字)替换每个值0
Application.ScreenUpdating = False
For Each c In Destination.Cells
If c.value = 0 Then
c.FormulaLocal = "=NV()"
End If
Next
然而,这需要很长时间。
是否有可能加快速度?
答案 0 :(得分:1)
您的NV()是拼写错误还是UDF?我在下面的示例中使用了NA(),因为Excel 2007中不存在NV()。假设您的代码在某个地方将Destination设置为完整的相关范围(在上面的代码中没有使用Resize,请尝试:
编辑 lookat:=参数已添加。
Destination.Replace what:=0, replacement:="=NA()", lookat:=xlWhole
由于您要添加多个公式而不是常量,因此您还应该根据计算模式进行 Dave 建议的更改。而且其他一些事情也可能被关闭"如有必要 - 例如:DisplayEvents,EnableEvents,Intgeractive,StatusBar