vba加速写字到单元格matrix

我有一个写在表单上的matrix

Destination.Resize(UBound(Matrix, 2), UBound(Matrix, 1)).value = Application.Transpose(Matrix) 

在这个单元格中,我想用NaN(不是数字)replace每个值0,

 Application.ScreenUpdating = False For Each c In Destination.Cells If c.value = 0 Then c.FormulaLocal = "=NV()" End If Next 

但这需要很长的时间。

任何可能使这个更快?

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

编辑 lookat:=参数添加。

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

由于您正在添加多个公式,而不是常量,因此您还应该进行Dave关于计算模式所build议的更改。 还有其他的东西,如果需要也可以“closures”,例如:DisplayEvents,EnableEvents,Intgeractive,StatusBar