Office 脚本疑难解答

开发 Office 脚本时,可能会出错。 没关系。 你拥有有助于查找问题并使脚本正常工作的工具。

注意

有关特定于使用 Power Automate 的 Office 脚本的故障排除建议,请参阅 对 Power Automate 中运行的 Office 脚本进行故障排除

平台限制和要求

有关由于 Excel、Power Automate 或其他技术而导致的 Office 脚本平台限制的详细列表,请参阅 Office 脚本的平台限制和要求

脚本错误

Office 脚本错误分为以下两个类别之一:

  • 编译时错误或警告
  • 运行时错误

编译时错误

编译时错误和警告最初显示在代码编辑器中。 这些由编辑器中的红色波浪下划线显示。 它们还显示在“代码编辑器”任务窗格底部的“ 问题 ”选项卡下。 选择错误可提供有关问题的更多详细信息并建议解决方案。 在运行脚本之前,应解决编译时错误。

代码编辑器的悬停文本中显示的编译器错误。

还可能会看到橙色警告下划线和灰色信息性消息。 这些指示脚本可能会产生意外影响的性能建议或其他可能性。 在消除这些警告之前,应仔细检查这些警告。

运行时错误

运行时错误是由于脚本中的逻辑问题而发生的。 这可能是因为脚本中使用的对象不在工作簿中,表的格式与预期不同,或者脚本的要求与当前工作簿之间存在一些其他细微差异。 当名为“TestSheet”的工作表不存在时,以下脚本将生成错误。

function main(workbook: ExcelScript.Workbook) {
  let mySheet = workbook.getWorksheet('TestSheet');

  // This will throw an error if there is no "TestSheet".
  mySheet.getRange("A1");
}

某些运行时错误是由于超出平台的限制而导致的,例如尝试使用Excel web 版同时写入过多数据。 有关潜在缺陷的完整列表,请参阅 Office 脚本的平台限制和要求

控制台消息

运行脚本时,编译时错误和运行时错误都会在控制台中显示错误消息。 它们提供遇到问题的行号。 请记住,任何问题的根本原因可能与控制台中指示的代码行不同。

下图显示了 显式 any 编译器错误的控制台输出。 请注意错误字符串开头的文本 [5, 16] 。 这表示错误位于第 5 行,从字符 16 开始。 显示显式“any”错误消息的代码编辑器控制台。

下图显示了运行时错误的控制台输出。 此处,脚本尝试添加具有现有工作表名称的工作表。 同样,请注意错误前面的“第 2 行”,以显示要调查的行。 代码编辑器控制台显示来自“addWorksheet”调用的错误。

控制台日志

使用 console.log 语句将消息打印到屏幕。 这些日志可显示变量的当前值或触发的代码路径。 为此,请使用任何对象作为参数调用 console.log 。 通常, string 是控制台中最容易读取的类型。

console.log("Logging myRange's address.");
console.log(myRange.getAddress());

传递给 console.log 的字符串显示在代码编辑器的日志记录控制台中,位于任务窗格底部。 日志位于“ 输出 ”选项卡上,但在写入日志时,选项卡会自动获得焦点。

日志不会影响工作簿。

“自动”选项卡未显示或 Office 脚本不可用

以下步骤应有助于排查与 Excel 中未显示的“ 自动” 选项卡相关的任何问题。

  1. 确保 Microsoft 365 许可证包含 Office 脚本
  2. 使用 Excel web 版) 时,请确保 (启用第三方 Cookie
  3. 确保管理员未在Microsoft 365 管理中心中禁用 Office 脚本
  4. 确保管理员未配置组策略来阻止 Office 脚本 (仅 Windows)
  5. 仅) 安装 WebView2 (Windows
  6. 确保未以外部用户或来宾用户身份登录到租户。

重要

将 Excel 与 Teams 配合使用时,Office 脚本仅在 Teams 网页版 (不支持 Teams for Windows、Mac、iOS 或 Android) 。

注意

有一个已知问题阻止存储在 SharePoint 中的脚本始终显示在最近使用的列表中。 当管理员关闭 Exchange Web Services (EWS) 时,就会发生这种情况。 仍可通过文件对话框访问和使用基于 SharePoint 的脚本。

计划脚本时出现问题

计划脚本需要 Microsoft 365 的业务许可证。 这是为计划脚本提供支持的 Power Automate 流所必需的。 当计划出现问题时,会显示此流中的错误。 可能需要在 Power Automate 中手动更新流,该流将在 “我的流”下列出。

以下列表显示了可能会遇到的常见错误。

  • 访问令牌过期 UTC 时间早于当前 UTC 时间。:在登录到服务与计划脚本之间经过的时间过长。 在代码编辑器中重新打开脚本或重新加载工作簿,然后再次尝试计划。

帮助资源

Stack Overflow 是一个开发人员社区,他们愿意帮助解决编码问题。 通常,你将能够通过快速 Stack Overflow 搜索找到问题的解决方案。 如果没有,请提出问题,并使用“office-scripts”标记标记它。 请务必提及创建 Office 脚本,而不是 Office 加载项

另请参阅