Google Script / Spreadsheet - 使用Installed Trigger onEdit的共享权限

时间:2012-10-20 16:58:23

标签: google-apps-script google-sheets

在电子表格中使用已安装的触发器来调用onUpdateBilling()。此脚本的目的是在编辑时,根据“billed”列的内容(即“d”)将突出显示整个列的预定颜色。

页面运行脚本与协作者共享,并且已获得编辑访问权限。我此时的期望是脚本应该使用所有者权限运行。我的共享用户无法使用给定错误“您没有此操作的权限”来运行脚本。

达到我的有限知识和googlefu这个解决方法。

感谢任何帮助我的合作者进行操作的帮助。

Script:
function onUpdateBilling(e) {

var statusCol = 16; // replace with the column index of Status column A=1,B=2,etc

var sheetName = "Temple Log"; // replace with actual name of sheet containing Status

var cell = SpreadsheetApp.getActiveSheet().getActiveCell();
var sheet = cell.getSheet();
if(cell.getColumnIndex() != statusCol || sheet.getName() != sheetName) return;

var row = cell.getRowIndex();
var status = cell.getValue();

// change colors to meet your needs
var color;
if (status == "D" || status == "d") {
  color = "red";}
  else if (status >= 1) {
    color = "yellow";}
  else if (status == "X" || status == "x") {
    color = "black";}
  else if (status == "") {
    color = "white";}
  else {
  color = "white";
  }

sheet.getRange(row + ":" + row ).setBackgroundColor(color);
}

1 个答案:

答案 0 :(得分:2)

同样的问题发生在我身上。经过大量的努力,我发现脚本更新的工作表/范围之一受到所有者的保护。

一旦所有者删除了保护,它就可以正常工作。

请注意,脚本不会以owner-permission运行。它使用当前登录用户的帐户运行。

希望它有所帮助。