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 开始。
下图显示了运行时错误的控制台输出。 此处,脚本尝试添加具有现有工作表名称的工作表。 同样,请注意错误前面的“第 2 行”,以显示要调查的行。
控制台日志
使用 console.log
语句将消息打印到屏幕。 这些日志可显示变量的当前值或触发的代码路径。 为此,请使用任何对象作为参数调用 console.log
。 通常, string
是控制台中最容易读取的类型。
console.log("Logging myRange's address.");
console.log(myRange.getAddress());
传递给 console.log
的字符串显示在代码编辑器的日志记录控制台中,位于任务窗格底部。 日志位于“ 输出 ”选项卡上,但在写入日志时,选项卡会自动获得焦点。
日志不会影响工作簿。
“自动”选项卡未显示或 Office 脚本不可用
以下步骤应有助于排查与 Excel 中未显示的“ 自动” 选项卡相关的任何问题。
- 确保 Microsoft 365 许可证包含 Office 脚本。
- 使用 Excel web 版) 时,请确保 (启用第三方 Cookie。
- 确保管理员未在Microsoft 365 管理中心中禁用 Office 脚本。
- 确保管理员未配置组策略来阻止 Office 脚本 (仅 Windows) 。
- 仅) 安装 WebView2 (Windows 。
- 确保未以外部用户或来宾用户身份登录到租户。
重要
将 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 加载项。