Excel 中的 Office 脚本:自动化工作簿的完整指南

最后更新: 18/02/2026
作者: 艾萨克
  • Office Scripts 允许您通过录制操作和编辑工作簿、工作表、区域和表格对象模型上的 TypeScript 代码来自动执行 Excel 任务。
  • 脚本可以在组织内共享,通过按钮运行,使用 Power Automate 进行计划,并与其他服务连接以实现高级工作流程。
  • 使用集合、类型化范围和添加/删除方法,可以更轻松地在重复性过程中创建、更新和清理表格和图表等对象。
  • 为了充分发挥其潜力,建议掌握 Microsoft 365 中的代码编辑器、API 参考以及故障排除和可用性选项。

Excel 中的 Office 脚本

MGI Office Scripts 是自动化 Excel 的现代方法。 Office Scripts 可在网页、Windows 和 Mac 上使用,它允许您录制操作、将其编辑为 TypeScript 代码,并随时运行——通过按钮、按计划或与 Power Automate 集成。如果您经常在工作簿中重复执行相同的任务,Office Scripts 可以将所有这些繁琐的工作转化为自动运行的进程。

远非仅仅是“另一种使用宏的方式”, Office Scripts 结合了 Excel、云计算和自动化工作流程的最佳功能。您可以与团队共享脚本,将它们连接到其他服务,并保持电子表格的最新状态,而无需不断打开文件或点击按钮。

Office Scripts 究竟是什么?什么时候使用它们才合适?

办公脚本本质上是: Excel 为您执行的一组指令这些指令可以来自您手动执行的操作记录,也可以来自手写的 TypeScript 代码。脚本创建完成后,即可在不同的工作簿和工作表中重复使用,从而节省时间并减少人为错误。

他们最能发挥优势的典型情况是: 你每天或每周重复相同的步骤。打开文件、清除列、格式化、应用公式、生成数据透视表或图表等等。所有这些过程每次可能需要几分钟,但只需捕获一次,然后单击一下即可启动。

想象一下每个工作日 您从会计系统中下载了一个 CSV 文件。你把它打开 Excel 和自动合并您可以删除不需要的列,将区域转换为表格,应用筛选器,添加公式,最终在新的工作表中生成一个数据透视表。无需手动重复这些步骤,只需运行脚本,几秒钟内即可生成文件,所有步骤都完全相同,不会遗漏任何步骤。

另一个巨大的优势是 您可以与同事分享该脚本。他们无需了解你的构建过程,也无需掌握任何编程知识;他们只需运行脚本即可获得相同的结果。这有助于规范财务、报告、管理控制、数据分析以及任何日常使用 Excel 的领域的流程。

动作记录器:无需编程的自动化

股票记录器是任何人的入口 你想在不编写任何代码的情况下实现 Excel 的自动化。它的操作与经典的宏录制器非常相似,但结果保存为基于 TypeScript 的脚本,而不是 VBA。

启用录制功能时,Excel 请在表格中记录您执行的操作。单元格编辑、格式更改、表格创建、图表插入等等。停止录制后,所有内容都会变成一个脚本,只要结构兼容(工作表名称、范围、表格等),就可以在其他工作簿中再次运行。

这种方法的最大优点是 你不需要任何先前的技术知识你只需像往常一样操作,录制器会自动将其转换为代码。之后,如果你想微调脚本的行为,可以在代码编辑器中打开它并调整具体细节。

在微软文档中,您可以找到这类指南。 “将操作记录为 Office 脚本”其中解释了良好实践、局限性(例如,某些 Excel 功能尚未记录)以及如何解释记录器生成的内容,以便您以后更容易对其进行编辑。

代码编辑器:TypeScript 的强大功能

代码编辑器是一个环境,其中 你去修改生成的脚本。 或者你需要从头开始编写一个新版本。这时,TypeScript、Excel 的对象模型以及所有仅凭界面无法控制的高级功能就派上用场了。

TypeScript 是一种 JavaScript 的类型化超集这意味着你所掌握的 JavaScript 知识都将派上用场,同时,编辑器还提供各种类型、检查和帮助功能,使错误检测更加便捷。为了充分利用 Office Scripts,我们强烈建议你具备一定的编程知识(即使是基础水平)。

每个 Office 脚本都必须有一个 主函数调用 main此函数接收一个类型为的对象作为其第一个参数。 ExcelScript.Workbook这代表脚本将要操作的 Excel 工作簿。一般来说,其结构始终遵循以下形式:

function main(workbook: ExcelScript.Workbook) {
// Aquí va tu código
}

你放在里面的代码 功能 main 运行脚本时将执行以下内容从这里,您可以调用同一文件中声明的其他函数,但函数之外的任何代码都不会自动执行。此外,脚本不能直接调用其他 Office 脚本,但可以通过 Power Automate 使用输入参数和返回值与其他脚本进行协调。 main.

官方教程,例如…… “创建和格式化Excel表格”他们会一步一步地指导你使用编辑器:如何解读录制器生成的代码,如何添加条件语句。 if/else循环和辅助函数,以及如何调试在完善脚本过程中可能出现的小错误。

  如何将 Google Sheets 电子表格转换为 UTF-8 编码的 CSV 文件而不丢失字符

Office Scripts 中的 Excel 对象模型

要有效地使用 Office Scripts,了解以下内容很有帮助。 Excel对象模型是如何组织的?该模型与你在界面本身中看到的非常相似:书籍、工作表、区域、表格、图表等,所有这些都按层次结构相互关联。

顶部是 物体 Workbook它代表了整本书。您可以从那里使用诸如以下方法访问其电子表格: getWorksheets() o getActiveWorksheet()每个工作表又允许您访问特定的单元格和区域。

电子表格(Worksheet包含范围(Range)范围是指一组连续的单元格。范围可以是单个单元格(例如“B3”),也可以是一整个单元格区域(“C2:F4”)。大多数数据结构——表格、图表、透视表、形状、图像和其他数据可视化元素——都是基于范围构建的。

Office Scripts API 分为两个主要命名空间: OfficeScript y ExcelScript与 Excel 工作簿和工作表直接相关的 API 位于: ExcelScript而那些不依赖于特定书籍的则位于……之下 OfficeScript官方参考文档详细列出了这两个软件包中所有可用的类和方法。

对象模型的一个非常简单的例子是脚本, 获取当前活动叶节点并将其名称显示在控制台上。 编者按:

function main(workbook: ExcelScript.Workbook) {
let sheet = workbook.getActiveWorksheet();
console.log(sheet.getName());
}

处理范围:值、公式和格式设置

范围是使用 Office 脚本的核心,因为 它们用于操作数据、公式和单元格的视觉外观。为了指代一个范围,通常使用符号 A1,既可以指单个单元格,也可以指块。

每个系列都包含三个关键维度: 单元格中包含的值、要计算的公式以及应用的格式。诸如此类的方法 getValues y setValues 您负责管理原始数据; getFormulas y setFormulas 你运用公式;并且通过 getFormat 你访问一个对象 RangeFormat 它允许您更改填充颜色、字体、边框等。

在内部, 等级用二维矩阵表示。例如,3 行 2 列的范围将是一个 any[][] 它包含三个元素(行),每个元素有两个值(列)。这为您提供了很大的灵活性,可以使用循环或 JavaScript/TypeScript 数组函数来遍历和处理数据。

典型的脚本可能会生成一份简短的销售报告: 设置标题、格式化标题、填充数据并计算总数 在特定范围内使用公式。这一切都是通过改变范围的属性并使用格式化方法来实现的,以使结果既易读又美观。

重要的是要清楚 单元格的实际值并不总是与屏幕上显示的值一致。。 例如, 显示的日期 例如,“02/05/2021”内部可能对应于数字44318。您看到的内容取决于数字格式,但其底层类型始终是数字,直到您更改该值为止。

在 TypeScript 中使用范围值是一种良好的实践。 请明确说明您期望的数据类型。一个细胞可以包含一个 string,一 numberboolean如果您知道某个特定范围始终包含数字(例如,价格列),则可以将其转换为该范围。 number[][] 这样我们就可以进行计算而不会出现 TypeScript 报错的情况。

例如,要从一列数据中获取平均价格,您可以声明类似这样的语句: let prices = priceRange.getValues() as number[][]; 然后遍历该矩阵,将各个值相加,然后除以行数。

表格、图表和其他数据对象

除了操作单个单元格之外,Office Scripts 还允许您…… 创建和修改更丰富的数据结构 例如表格、图表、数据透视表、形状或图像。这些对象存储在与工作表或工作簿本身关联的集合中。

表格由数据范围构成,并允许 应用自动格式化、筛选和预定义样式脚本可以添加一个带有表头的表格。 addTable(rango, true) 然后,从那里访问它的列、行和特定属性。

也可以使用诸如以下方法以编程方式生成图表: addChart脚本可以 创建柱状图、折线图、饼图等。 使用数据范围作为数据源。您甚至可以调整属性,例如在工作表中的位置、大小或图表类型。

同样,可以通过脚本管理数据透视表、形状和图像,无论是创建、更新还是删除它们。 Office Scripts 技术文档 它详细介绍了每种对象类型的所有类和方法,以及实际使用示例。

  如何将文档转换为适合打印的PDF格式

在许多实际场景中,自动化表格和图表的结合可以让你: 一键生成可用于演示的报告。无需每次收到新数据时都手动重建相同的报告结构。

集合和对多个对象的访问

当一个 Excel 对象将多个相同类型的元素分组时,它是通过集合来实现的。 它们在 TypeScript 中以数组的形式表示。。 例如,一个 Workbook 拥有一系列 Worksheet[]您可以通过以下方式访问它 getWorksheets().

一般惯例是,方法名称具有复数形式,例如: getTables(), getCharts() o getColumns()它们返回该类型对象的完整集合。有了该数组后,你就可以使用通常的数组操作:遍历它 forEach可通过索引、筛选、搜索等方式访问。

要查询特定对象,通常有一些特定的方法,例如: getTable(name) o getWorksheet(name)这些函数需要一个标识符或名称,通常需要预先在脚本或 Excel 界面中指定。如果元素存在,则返回相应的实例;否则,返回 null。 undefined.

事先检查是一种非常常见的做法。 如果集合中已存在该对象例如,您可以尝试查找名为“MyTable”的表,如果找到,则直接使用;如果找不到,则从头开始创建。这种方法可以避免脚本在结构略有不同的工作簿上运行时出现错误。

在生成必须始终使用相同表名或图表名称的报表时,通常的做法是先删除之前的对象(如果存在),然后再创建一个新的对象。这样可以避免名称冲突或之前运行遗留的信息,以免给其他用户造成困扰。

使用脚本添加和删除 Excel 对象

Office Scripts 允许您以编程方式创建和删除工作簿对象,这在您需要以下功能时至关重要: 每次执行后,书本都会保持干净且受控的状态。此外,还使用了各种方法。 add... 在“父”对象中;要删除,只需调用 delete() 在物体本身中。

例如,电子表格允许 创建新表 addTable传递数据范围以及是否包含表头。该方法返回新创建的表,您可以为其命名。 setName() 以便在以后的执行或其他脚本中快速找到它。

如果你想确保旧桌子不留下任何痕迹,你可以 尝试按名称检索,并在创建新文件之前删除现有文件。这种模式广泛用于每天使用新数据运行的流程中,因为你不希望将历史记录保留在同一个工作簿中。

删除操作对其他对象(例如电子表格、图表或数据透视表)也类似。只需检索对象并调用…… delete() 这样它就会从书中消失。然后,你就可以利用新数据重建你需要的内容了。

但是,建议谨慎行事。 从书中删除关键内容例如,删除第一个电子表格可能会让期望看到它的用户感到困惑。一个好的做法是详细记录脚本的行为,并且尽可能使用专门为自动化流程创建的电子表格。

共享脚本并通过按钮运行它们

Office Scripts 的一大优势在于: 它们不会一直留在你的账户里。您可以与组织内的其他用户共享这些书籍,尤其是在他们处理云端共享书籍时。

在共享工作簿中共享脚本时, 所有有权访问该文件的团队成员都可以查看和运行该文件。 从“自动化”选项卡中。这对于规范某些数据的处理方式非常有用,可以防止每个人“发明”自己版本的关键流程。

此外,Excel 还允许 添加可直接启动脚本的按钮 用户可以直接从功能区或脚本库中使用这些按钮。即使不具备脚本编写知识的用户,也能通过这些按钮轻松便捷地访问日常工作中所需的自动化功能。

从代码编辑器的上下文菜单(可通过脚本名称旁边的省略号访问)中,您可以…… 更改脚本名称、删除脚本或将其与 Power Automate 集成您还可以将其添加到功能区,使其作为另一个操作显示在您的工作环境中。

文档中包含专门介绍以下内容的章节: “在 Excel 中共享 Office 脚本”和“创建运行 Office 脚本的按钮”其中详细介绍了如何配置权限、用户可以使用共享脚本做什么以及 Microsoft 365 应用了哪些安全限制。

安排脚本自动执行

除了手动运行之外,Office 脚本还可以: 设置程序让它们在特定时间自动运行利用其与 Power Automate 的集成,它可以确保某些书籍在无需人工干预的情况下保持最新状态。

这个想法很简单:一旦你有了能完成所需工作的脚本, 将其连接到 Power Automate 流程。 它会定期触发(例如,每天早上 8:00)。即使书本处于关闭状态,工作流程也会在后台自动打开书本、运行脚本并保存更改。

  如何在 Excel 中执行算术运算(加、减、乘、除)

要配置此计划,请在代码编辑器中打开脚本并找到以下部分: “脚本编写”接下来,您可以使用 Excel 帐户通过 Power Automate 登录,定义执行频率,然后单击“创建流程”。从那时起,脚本将根据您定义的计划自动运行。

这种方法大大减少了诸如此类任务中的摩擦。 每日更新报告 或者重新计算依赖于外部值的模型。流程设置完成后,您无需手动启动该流程。

但是,一开始密切关注情况很重要。 流程执行无误如果由于工作表名称更改、表格删除或工作簿结构修改而导致失败,Power Automate 将反映这些错误,您可以在运行日志中查看这些错误。

连接到 Power Automate 和其他服务

Power Automate 是微软提供的用于创建自动化文件的服务。 应用程序和服务之间的自动化工作流程与 Office Scripts 集成后,您的脚本不仅可以依赖于 Excel 中的操作,还可以通过外部事件触发,并与其他工具结合使用。

利用这种组合,您可以例如: 每当收到带有特定附件的电子邮件时,运行一个脚本。例如,Office Scripts 可以在 SharePoint 列表中添加项目时更新工作簿,或者在审批工作流开始时触发数据处理。这使得 Office Scripts 成为更广泛的自动化生态系统中的又一个组成部分。

Power Automate 流程和脚本之间通过以下方式交换数据: 输入参数和函数返回的值 main换句话说,您可以将信息从流程传递到脚本(例如,文件名或目标范围),并返回流程稍后将使用的结果(例如,计算值或状态)。

微软提供了一些专门的教程,例如: “使用 Power Automate 运行 Office 脚本”本节详细介绍了可用的操作、连接器结构以及典型用例示例。对于那些希望从 Excel 领域过渡到跨应用程序自动化的用户来说,本节内容尤其有用。

实际上,许多用户会将 Office 脚本与……结合使用。 Power Query 和其他 Power Platform 组件例如,使用 Power Query 导入和转换数据,使用 Office Scripts 将特定的业务逻辑应用于工作簿,以及使用 Power Automate 在后台协调整个流程。

可用性、脚本执行和故障排除

要使用 Office Scripts,您需要 兼容的 Microsoft 365 许可证 并且贵组织自那时起尚未禁用此功能。 行政中心 或通过组策略。此外,网页版 Excel 需要启用第三方 Cookie。

在某些 Windows 环境中,这是必要的。 安装 WebView2 为了确保某些功能正常运行,请务必确保您未在​​租户上使用外部帐户或访客帐户,因为这可能会限制对脚本的访问。

要运行脚本,通常需要转到选项卡。 自动化 > 查看脚本在那里您可以看到包含最新脚本的库。选择一个脚本将在代码编辑器中打开,您可以点击“运行”按钮,并在脚本处理过程中看到简短的通知。

如果在执行过程中出现问题, 错误出现在代码编辑器中。面板底部会显示一个“查看日志”按钮,点击后会显示问题摘要。这些问题通常是由于工作簿之间的差异造成的:例如工作表名称已更改、表已删除、范围已更改等等。

请记住, 并非所有 Excel 功能都受录制器或 API 支持。 始终如此。微软正在逐步扩大兼容性,但某些操作可能会在录制面板中显示为“不支持”,并且不会包含在脚本中。

如果您需要更多帮助,Excel 技术社区和 Microsoft 支持论坛都是不错的选择。 您可以分享您在使用 Office Scripts 时的经验、疑问或遇到的问题。许多用户评论说,他们如何将这些工具与 VBA、Power Automate、Power Query 和其他组件结合使用,以从他们的数据中获得更多收益。

总的来说,Office Scripts 提供了一种非常强大的方式 将 Excel 自动化提升到新的水平它集成了现代脚本、云执行、任务调度和跨应用程序流程。虽然学习曲线较为陡峭,特别是如果您之前使用过 VBA 或从未接触过 TypeScript,但投入的时间将转化为更快的流程、更少的错误以及团队更一致地处理相同数据。

Excel Web 中的 Office 脚本
相关文章:
Excel Web 版 Office 脚本:自动化工作簿完整指南