Google apps script Google应用程序脚本-是否可以仅通过GoogleAppScript允许对工作表中的某些单元格进行更改?
我在谷歌电子表格中制作目录。我的spreasheet有一个表,用户可以在其中添加信息。此表是通过从数据库工作表获取数据的脚本动态创建的 用户可以编辑表中的某些单元格,然后单击按钮将更改保存回数据库工作表 我想限制他可以手动编辑的单元格,但我不能保护这些单元格,因为有一个脚本可以修改它(因为表是通过脚本动态生成的) 有没有办法保护单元格,使其只能由脚本编辑 我不能只保护一些区域,因为是用户运行脚本来修改单元格。如果我保护范围,用户不能手动或使用脚本更改范围。我想要一种防止手动输入范围的方法,但允许用户运行的脚本(而不是电子表格所有者)更改单元格Google apps script Google应用程序脚本-是否可以仅通过GoogleAppScript允许对工作表中的某些单元格进行更改?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我在谷歌电子表格中制作目录。我的spreasheet有一个表,用户可以在其中添加信息。此表是通过从数据库工作表获取数据的脚本动态创建的 用户可以编辑表中的某些单元格,然后单击按钮将更改保存回数据库工作表 我想限制他可以手动编辑的单元格,但我不能保护这些单元格,因为有一个脚本可以修改它(因为表是通过脚本动态生成的) 有没有办法保护单元格,使其只能由脚本编辑 我不能只保护一些区域,因为是用户运行脚本来修改单元格。如果我保护范围,用户不能手动或使用脚本更改范围。我想要一种防止手动输入范围的方法,但允许
谢谢使用独立脚本来创建具有所有者权限的web应用程序,而不是使用绑定脚本。这是因为有界脚本运行此命令时,会限制执行脚本的用户的权限
为了帮助您的用户执行webapp,我认为您可以创建一个用户对话框或侧面板来显示指向webapp的链接。我通过以下步骤解决了这个问题 printsht.getRange(“A1:Q22”).setDataValidation(null) 在范围内执行任何处理 printsht.getRange(1,1,22,17).设置值(prin) 经过所有的处理和设置值等 //打印后的块编辑 var cell=printsht.getRange(“A1:Q22”); var rule=SpreadsheetApp.newDataValidation().requireTextEqualTo(“$$”).setAllowInvalid(false).setHelpText(“不在打印表中编辑”).build(); cell.setDataValidation(规则) 现在没有人可以手动编辑范围。所有的公式等将正常工作
但是,如果用户拥有编辑权限,他可以轻松地从系统菜单中删除验证。因此,它不是万无一失的。我相信我的问题可能重复的问题尚未得到回答。可能重复的问题您可以尝试使用可安装的触发器-请参阅