使用openById的电子表格脚本问题

时间:2013-10-23 22:28:26

标签: google-apps-script google-sheets spreadsheet google-docs google-docs-api

我已经到处搜索了我能想到的这个问题的答案,但我每次都干了(包括在很多其他地方搜索这个网站)。如果我能够教育自己,我是一个很难找到问题的人,但这让我很难过。

预期的操作:我有两个电子表格(请注意,我没有在电子表格中说明,但有两个完全独立的电子表格)。< / p>

一个电子表格接收来自Google表单的提交。团队监控提交的内容并将每个提交设置为各种类别:声明,未声明,已解决,待处理。当事情被标记为待定时,我需要将标记为复制的行添加到第二个电子表格,其中单独的团队处理它。

重要提示:导入范围就足够了。第二个团队需要操纵复制的数据,导入范围和类似功能不允许这样做。因此,我一直在尝试使用appendRow()。

问题:由于原因未知,一切正常,直到代码到达openById(),此时执行失败并出现以下错误:

  

[13-10-23 15:00:59:117 PDT] SpreadsheetApp.openById([ss-key])[0秒]   [13-10-23 15:00:59:133 PDT]执行失败:不允许动作(第26行,文件“PK-PR Manager”)[0.267秒总运行时间]

我尝试了什么:我尝试将我的脚本项目保存为库并将其添加到其他电子表格中,我尝试撤消对我帐户的脚本访问并重新启用它。我试图找到将脚本链接到两个电子表格的方法(显然没有成功)。我在文档和我能找到的涉及上述功能的任何内容中都广泛搜索了谷歌。我已检查,仔细检查并三重检查了我的所有变量,语法等。我还检查并更改了目标电子表格上的共享权限,以防万一。

实际代码:

function onEdit(e) {
  if (e.range.getColumn() == 2) {
    var myCell = e.range;
    status = myCell.getValue();
    myCell.setFontWeight("bold");
    if (status == "Claimed") {
      myCell.setBackgroundColor("#F5B36C");

      myCell = myCell.offset(0,1);
      myCell.setValue(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH:mm:ss"));
    } else if (status == "Resolved") {
      myCell.setBackgroundColor("#95C47E");
    } else if (status == "Pending") {
      myCell.setBackgroundColor("#B4A7D6");
      myCell = myCell.offset(0,1);
      myCell.setValue(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH:mm:ss"));

      var myRow = myCell.getRow();
      var lineRange = master.getRange("C" + myRow + ":L" + myRow);
      var lineValues = lineRange.getValues();
      var pkss = SpreadsheetApp.openById(pkssKey);
      //Logger.log(pkss.getName());
      var pksheet = pkss.getSheetByName("Sheet1");
      pksheet.appendRow(lineValues[0]);
    } else {
      myCell.setBackgroundColor("#E06767");
      myCell.setValue("Unclaimed");

      myCell = myCell.offset(0,1);
      myCell.setValue("");

      myCell = myCell.offset(0,1);
      myCell.setValue("");
    }
  }
}

0 个答案:

没有答案