更改电子表格时的权限问题

时间:2017-10-01 18:31:05

标签: google-apps-script

我有这段代码应根据单元格的值设置自定义格式编号。

function fixFormat() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange("K1:K30");

  var rows = range.getNumRows();
  var cols = range.getNumColumns();
  for(var row = 1; row <= rows; row++) {
    for(var col = 1; col <= cols; col++) {
      var cell = range.getCell(row, col);
      var value = cell.getValue();
      if (value > 1000) {
        cell.setNumberFormat("#.###B");
      } else {
        cell.setNumberFormat("#.###");
      }
    }
  } 
}

当配置为触发器(onChange)时,它根本不运行,当被称为=fixFormat()时,我收到错误:You don't have permission to call setNumberFormat.

  • 我是表单的所有者
  • 我没有阻止访问任何内容
  • 我在其他工作表上使用相同的脚本

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

发现问题

经过大量挖掘后,enter image description here说:

  

电子表格:只读(可以使用大多数get *()方法,但不能设置*())。无法打开其他电子表格(SpreadsheetApp.openById()或SpreadsheetApp.openByUrl())。

所以解决方案(勉强)就是使用support page