【发布时间】:2013-08-07 18:28:01
【问题描述】:
我正在编写一些 VBA 代码,该代码将包含用户定义函数 (UDF) 的公式写入我工作簿的某些单元格,例如:H1004 = maxdd(H1:H1001)。
当我在 Excel 2010(适用于 Windows) 中运行代码时,一切正常:
1) 将公式写入单元格
2) 每个单元格都返回正确的结果。
当我在 Excel 2011 for Mac 中运行相同的代码时,公式也会写入单元格中。但是,单元格不会返回任何有效结果 - 而是显示 #value 错误。
注意:我无法解决此问题,因为当我选择其中一个单元格时,将光标放在公式字段中,然后按回车键(可能是强制单元格计算),正确答案出现了。
我的问题:
- 需要做些什么来防止 Excel for Mac 返回
#value错误而不是简单的结果?
【问题讨论】:
-
我不确定这是否会导致您的项目出现问题(不知道您在做什么的细节),但您可以尝试将
Application.Volatile添加到函数的 VBA 代码的开头。这将导致 Excel 在每次重新计算工作表时重新计算 UDF。 -
@Excellll 我已经尝试过
Application.Volatile和Application.CalculateFull...它仍然给了我错误。 -
尝试在Mac上一一做你的maxdd函数中的操作,看看是哪个操作导致了value错误。
-
@Joop maxdd 函数本身是完美的——当我手动将它输入到单元格时,单元格将立即返回正确的结果。 #value 错误仅在我让 vba 代码“键入”到单元格时出现。另外:vba 代码中不可能真的有错误,因为相同的过程在 Windows 上完美运行。
-
能否发布一些maxdd代码的示例代码,以便我们进行故障排除?
标签: macos worksheet-function vba