使用Office Scripts实现Excel工作表解锁、插入行及重新保护
使用Office Scripts实现带密码保护的行插入功能
直接给你能运行的完整脚本,替换密码就能用:
function main(workbook: ExcelScript.Workbook) { // 替换成你的工作表保护密码 const password = "yourPasswordHere"; const activeSheet = workbook.getActiveWorksheet(); // 解锁工作表 activeSheet.unprotect(password); // 在活动单元格所在行上方插入一行 const activeCell = workbook.getActiveCell(); if (activeCell) { const rowIndex = activeCell.getRowIndex(); // 插入和已用列同宽的行,避免格式问题 activeSheet.getRangeByIndexes(rowIndex, 0, 1, activeSheet.getUsedRange().getColumnCount()).insert(ExcelScript.InsertShiftDirection.down); } // 重新保护工作表,启用指定权限 activeSheet.protect(password, { allowAutoFilter: true, allowPivotTables: true, allowSelectLockedCells: true, allowSelectUnlockedCells: true }); }
关键部分说明
- 密码替换:把代码里的
"yourPasswordHere"改成你实际用的保护密码,注意大小写和符号要完全匹配。 - 解锁逻辑:
unprotect()方法对应VBA里的Unprotect,传入密码直接解除保护。 - 插入行:先拿到当前选中的活动单元格,获取它的行号,然后插入一行——这里特意用
getRangeByIndexes确保插入的行覆盖整个已用列范围,防止只插入单个单元格的情况。 - 重新保护:
protect()的第二个参数是权限配置对象,你要的四个功能都直接设为true,对应VBA里保护时勾选的选项。
使用步骤
- 打开Excel网页版和目标工作簿;
- 点顶部的「自动化」→「新建脚本」;
- 删掉默认的示例代码,粘贴上面的脚本,改好密码;
- 点「运行」就完成操作了。
内容的提问来源于stack exchange,提问作者Henry CloseBrooks
相关产品推荐
相关产品推荐

