我正在研究一些VBA代码,它将包含用户定义函数(UDF)的公式写入我的工作簿的某些单元格中,例如:H1004 = maxdd(H1:H1001)
。
当我在 Excel 2010(适用于Windows)中运行代码时,一切都按预期工作:
1)将公式写入单元格中 2)每个单元格返回正确的结果。
当我在 Excel 2011 for Mac 中运行相同的代码时,公式也会写入单元格。但是,单元格不会返回任何有效结果 - 而是显示#value
错误。
注意:我无法解决此问题,因为当我选择其中一个单元格时,将光标放在公式字段中,然后按返回(可能强制要求单元格进行评估),正确答案出现了。
我的问题:
#value
错误而不是简单的结果,需要做些什么?答案 0 :(得分:1)
我终于想通了 导致了这个问题,虽然我不知道为什么导致了这个问题:
为了让vba代码运行得更快,我在代码开头关闭了automatic calculation
并在代码末尾将其重新打开,就像这样 - >
Application.Calculation = xlCalculationManual
'main part of vba code
Application.Calculation = xlCalculationAutomatic
由于某种原因,这使得包含用户定义函数的单元格不会被更新 没有这两行代码,现在一切正常。