Google apps script 如何在google脚本运行期间设置工作表保护

Google apps script 如何在google脚本运行期间设置工作表保护,google-apps-script,google-sheets,Google Apps Script,Google Sheets,这个问题是关于谷歌电子表格的。我有一个与多人共享的电子表格。我也在使用脚本更新工作表内容。 我的问题是,当我运行脚本时,是否有方法保护工作表不受其他人的编辑。脚本完成后,编辑权限可以再次授予用户?我之所以回复,是因为我看到您还没有其他人,我已经修补了这个问题,但没有成功。虽然在我的例子中,目标有些不同,因为我需要用户在运行菜单驱动脚本时执行我的代码。因为您只需要自己修改保护,所以您可能会发现这对您很有用 在任何情况下,我都可以预见用户在运行代码时可能处于中间编辑状态,这可能会让他们感到沮丧!您可

这个问题是关于谷歌电子表格的。我有一个与多人共享的电子表格。我也在使用脚本更新工作表内容。
我的问题是,当我运行脚本时,是否有方法保护工作表不受其他人的编辑。脚本完成后,编辑权限可以再次授予用户?

我之所以回复,是因为我看到您还没有其他人,我已经修补了这个问题,但没有成功。虽然在我的例子中,目标有些不同,因为我需要用户在运行菜单驱动脚本时执行我的代码。因为您只需要自己修改保护,所以您可能会发现这对您很有用

在任何情况下,我都可以预见用户在运行代码时可能处于中间编辑状态,这可能会让他们感到沮丧!您可能要做的是掌握用户对象和关联方法,以便对其进行管理。现在我不知道如果不把他们踢出去,你会怎么做(同样的结果),但也许其他人会插话。查看电子表格类,了解以下内容:

  • getEditors/removeditor/addEditor
  • getViewers/addViewers

以下是我制作的一个功能,它对我(所有者)有效,但对用户无效-希望它能有所帮助:

//Target = string name of sheet to change permissions for
//ProtectOn = boolean: TRUE = turn on protection
//function returns boolean representing previous permissions setting (for loops/verification)

function SheetProtectionSet(Target, ProtectOn) {
  var g_wkbActive = SpreadsheetApp.getActiveSpreadsheet();
  var wksTarget = g_wkbActive.getSheetByName(Target);
  var permissions = wksTarget.getSheetProtection();
  var cur_protection = permissions.isProtected();

  permissions.setProtected(ProtectOn);
  wksTarget.setSheetProtection(permissions);
  return cur_protection;
}