应用对象
Excel 2010

摘要

在“适用范围”部分中列出的 Microsoft Excel 版本中,可以创建一个用户定义的函数,该函数使用 Visual Basic for Applications 返回自定义计算。 但是,当工作表单元格中的公式调用时,用户定义的函数无法执行更改 Microsoft Excel 环境的操作。

更多信息

工作表单元格中的公式调用的用户定义函数无法更改 Microsoft Excel 的环境。 这意味着此类函数无法执行以下任一操作:

  • 在电子表格中插入、删除单元格或设置单元格格式。

  • 更改另一个单元格的值。

  • 将工作表移动、重命名、删除或添加到工作簿。

  • 更改任何环境选项,例如计算模式或屏幕视图。

  • 向工作簿添加名称。

  • 设置属性或执行大多数方法。

用户定义函数的用途是允许用户创建一个自定义函数,该函数未包含在 Microsoft Excel 附带的函数中。 Microsoft Excel 中包含的函数也无法更改环境。 函数可以执行计算,将值或文本返回到输入到的单元格中。 任何环境更改都应通过使用 Visual Basic 子例程进行。 在计算过程中,Excel 检查包含用户定义的函数的单元格的先例。 如果到目前为止,在计算过程中尚未计算出所有先例,Excel 最终会调用用户定义的函数,并将 Null 或空单元格传递给函数。 然后,Excel 确保进行足够的计算传递来计算所有先例。 在最终计算阶段,用户定义函数将传递单元格的当前值。 这可能会导致调用用户定义的函数的频率高于预期,并且具有意外参数。 因此,用户定义的函数可能会返回意外值。为了进行正确的计算,计算中使用的所有区域都应作为参数传递给函数。 如果未将计算范围作为参数传递,则 Excel 无法在计算引擎中考虑这些范围,而不是引用函数的 VBA 代码中的范围。 因此,Excel 可能无法充分计算工作簿,以确保在计算用户定义函数之前计算所有先例。

参考

“Visual Basic 用户指南”版本 5.0,第 4 章,“什么是 Visual Basic 过程”“ 编写用户定义的工作表函数”,Microsoft Excel 7.0 Visual Basic 帮助文件。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。