如果用户定义的函数的参数是静态参数(其值在模拟期间不发生变化),则这些函数不会由极限速度调用,除非设置了函数的“波动”属性。
在极限速度下遇到用户定义的函数时,Crystal Ball 会首先检查并确认该函数是否为波动函数。如果 Crystal Ball 遭到拒绝,无法访问 VBA 项目,而且用户定义的函数没有传递数组或单元格范围参数,Crystal Ball 便会将该函数视为波动函数。
如果对项目的访问遭到拒绝,但调用传递了数组或单元格范围参数,则会显示以下消息:
无法解释带数组参数的用户定义函数。您必须首先在 Microsoft Excel 的宏安全性设置对话框中选中“信任对 Visual Basic 项目的访问”复选框。有关此错误的详细信息,请参阅用户指南中的附录 C。
使用涉及 Analysis ToolPak 的数组参数或任何其他参数时,您不应遇到此特定错误,因为 ToolPak 直接嵌入在 Microsoft Excel 2007 或更高版本中。