Excel 命令、函数和状态

适用于:Excel 2013 | Office 2013 | Visual Studio

Microsoft Excel 可识别两种非常不同的新增功能类型:命令和函数。

命令

在 Excel中,命令具有以下特征:

  • 它们执行操作的方式与用户相同。

  • 它们可以完成用户可执行的任何任务(受所使用的接口限制),例如更改 Excel 设置,打开、关闭和编辑文档,启动重新计算等。

  • 可以将它们设置为在发生某些捕获到的事件时对其进行调用。

  • 它们可显示对话框并与用户交互。

  • 可将它们链接以控制对象,以便在该对象上采取某些操作(如左键单击)时对其进行调用。

  • Excel 在重新计算期间从不调用它们。

  • 任何函数在重新计算期间都不能调用它们。

函数

Excel 中的函数执行以下任务:

  • 它们通常采用参数并且始终返回一个结果。

  • 可以将它们作为 Excel 公式的一部分输入到一个或多个单元格中。

  • 它们可用于定义的名称定义中。

  • 它们可用于条件格式限制和阈值表达式中。

  • 它们不能被命令调用。

  • 它们不能调用命令。

Excel 可以进一步分区用户定义的工作表函数和用户定义的用于宏工作表的函数。 Excel 并没有将用户定义的宏工作表函数限制为仅可在宏工作表上使用:这些函数可以在正常工作表函数可使用的任何位置使用。

工作表函数

以下适用于 Excel 工作表函数:

  • 它们无法访问宏工作表信息函数。

  • 它们无法获得未计算单元格的值。

  • 从 Excel 2007 起,它们可被编写和注册为线程安全对象。

宏工作表函数

以下适用于 Excel 宏工作表函数:

  • 它们可以访问宏工作表信息函数。

  • 它们可以获得未计算单元格的值,包括调用单元格的值。

  • 从 Excel 2007 起,它们不能被视为线程安全对象。

Excel 如何对待用户定义的函数 (UDF)、其允许函数执行的操作以及如何重新计算函数均在注册函数时决定。 如果函数被注册为工作表函数,但却尝试执行只有宏工作表函数才能完成的操作,则操作将会失败。 从 Excel 2007 起,如果注册为线程安全对象的工作表函数尝试调用宏工作表函数,则操作也会失败。

Excel 将 Microsoft Visual Basic for Applications (VBA) UDF 处理为宏工作表等效函数,因为它们可以访问工作区信息和未计算单元格的值,并且从 Exel 2007 起,它们不能被视为线程安全对象。

Excel 状态

Excel 在任何给定时间处于多种状态之一,具体取决于用户操作、外部进程、捕获到的运行宏的事件或计时 Excel 维护管理事件(如自动保存)。

用户可遇到的状态如下所示:

  • 就绪状态:未开始运行任何命令或宏。 不会显示任何对话框。 不会编辑任何单元格,并且用户未处在剪切/复制与粘贴操作中间。 没有嵌入对象具有焦点。

  • 编辑模式:用户已开始将有效的输入字符键入到已解锁或未保护的单元格,或者在一个或多个已解锁或未保护的单元格上按 F2

  • 剪切/复制和粘贴模式:用户已剪切或复制单元格或单元格区域但尚未粘贴,或者已使用支持多种粘贴操作的粘贴专用对话框进行了粘贴。

  • 数据点模式:用户将编辑公式,并且将选择地址已添加到所编辑的公式的单元格。

用户可以通过按 ESC 键清除编辑内容、数据点和剪切/复制模式,这会使 Excel 返回至其就绪状态。 其他事件可以清除这些状态,例如:

  • 用户打开内置对话框。

  • 用户启动重新计算。

  • 用户运行命令。

  • Excel 执行自动保存操作。

  • 捕获到计时器事件。

最后一个示例对于加载项开发人员来说非常重要。 在设置和执行频繁计时器事件捕获时,应考虑正常使用 Excel 的影响。 如果这是加载项功能的重要组成部分,则应为用户提供一种能够轻松将其暂停的方式,以便它们在需要时能够正常完成剪切/复制和粘贴操作。

另请参阅

Excel 编程概念

允许用户中断冗长操作