如何防止用户移动Google Sheet中的形状或修改其绑定的脚本
解决Google Sheet中锁定形状位置与禁止修改绑定脚本的方法
一、阻止用户移动形状位置
- 用Google Apps Script锁定形状的位置与操作权限:
- 打开Sheet的脚本编辑器(点击「扩展程序」>「Apps Script」)
- 粘贴以下代码,运行一次即可锁定所有形状:
function lockShapes() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const shapes = sheet.getShapes(); shapes.forEach(shape => { // 锁定位置,禁止移动、调整大小 shape.setLocked(true); // 可选:设置形状不可选中,彻底阻断用户操作入口 shape.setSelectable(false); }); } - 若需允许特定用户编辑形状,可通过「数据」>「保护工作表和范围」设置:选择「限制谁可以编辑此范围」,添加允许编辑的用户,同时确保保护范围覆盖形状所在区域,排除需要用户编辑的单元格范围。
二、禁止用户修改形状绑定的脚本
- 限制脚本编辑权限:
- 在脚本编辑器右上角点击「共享」,仅添加你(所有者)或指定管理员为脚本编辑者,其他用户设为无权限或仅查看权限。
- 阻断用户修改形状的脚本关联:
- 结合上述
setSelectable(false)设置,用户无法选中形状,自然无法右键查看或修改绑定的脚本。 - 若需保留形状可点击执行脚本的功能,可在脚本中添加验证逻辑,确保只有预设函数能被触发,同时通过Sheet保护设置禁止用户修改形状的交互属性。
- 结合上述
额外提示
- 如果用户仅需编辑单元格内容,可将Sheet共享权限设为「评论者」,但需搭配上述脚本锁定形状,避免用户通过评论权限间接操作形状。
- 新增形状后,需重新运行
lockShapes函数完成锁定。
内容的提问来源于stack exchange,提问作者mdian mohamed
相关产品推荐
相关产品推荐

