vba加速将公式写入细胞矩阵

时间:2014-09-26 10:22:37

标签: excel vba excel-formula

我有一个写在表单上的矩阵

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
然而,这需要很长时间。

是否有可能加快速度?

1 个答案:

答案 0 :(得分:1)

您的NV()是拼写错误还是UDF?我在下面的示例中使用了NA(),因为Excel 2007中不存在NV()。假设您的代码在某个地方将Destination设置为完整的相关范围(在上面的代码中没有使用Resize,请尝试:

编辑 lookat:=参数已添加。

Destination.Replace what:=0, replacement:="=NA()", lookat:=xlWhole

由于您要添加多个公式而不是常量,因此您还应该根据计算模式进行 Dave 建议的更改。而且其他一些事情也可能被关闭"如有必要 - 例如:DisplayEvents,EnableEvents,Intgeractive,StatusBar