You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Office Scripts解除密码保护工作表的代码修改及报错排查求助

Office Scripts解除密码保护工作表的代码修改及报错排查求助

你说得没错,最初的报错确实是因为调用unprotect()时没传入工作表的保护密码。Office Scripts里的WorksheetProtection.unprotect()方法是支持传入密码参数的,我来帮你修正代码,同时也帮你排查后来出现的“Workbook not found”报错。

一、修正解除密码保护的代码

你只需要把密码作为字符串参数传给unprotect()方法就行,写法非常简单:

selectedSheet.getProtection().unprotect("你的实际密码");

记得把代码里的"你的实际密码"替换成你真实的工作表保护密码。

二、完整的修改后脚本

这里给你整理好包含密码校验、且容错性更强的完整脚本:

function main(workbook: ExcelScript.Workbook) {
  let selectedSheet = workbook.getActiveWorksheet();

  // 传入密码解除工作表保护
  selectedSheet.getProtection().unprotect("你的实际密码");

  // 移除自动筛选(加判断避免无筛选时报错)
  const autoFilter = selectedSheet.getAutoFilter();
  if (autoFilter) {
    autoFilter.remove();
  }

  // 删除第1至6行
  selectedSheet.getRange("1:6").delete(ExcelScript.DeleteShiftDirection.up);
}

我额外加了自动筛选的存在判断,防止工作表本来就没有设置筛选时触发不必要的报错。

三、排查“Workbook not found”报错

这个错误和密码无关,大概率是Power Automate与Excel文件的关联环节出了问题,你可以从以下几个方向排查:

  • 确认Power Automate流程里指定的Excel文件路径、文件名完全正确,没有拼写错误或路径变动
  • 检查目标Excel文件是否被移动、重命名或者删除了
  • 确认Power Automate所使用的账号拥有该Excel文件的读写权限
  • 如果文件存储在OneDrive/SharePoint上,检查文件是否处于锁定状态(比如有其他用户正在编辑)

备注:内容来源于stack exchange,提问作者Jonnyboi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:09:29