脚本-添加/删除Google表格编辑器以获取列表

时间:2020-03-05 18:41:40

标签: google-apps-script google-sheets

示例文档:Link

我有一个工作脚本,可以在指定工作表ID中添加或删除编辑器已有好几个月了,直到最近它开始出现以下错误:

Exception: The parameters (number[]) don't match the method signature for SpreadsheetApp.Spreadsheet.removeEditor.

关于我提供的脚本的输入,最近没有任何变化,所以我有点茫然。

脚本如下:

  function runEmailAccess(){
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sEditors = ss.getSheetByName('Editors');
  var sheet = SpreadsheetApp.openById("SHEETID");
  
  var nAddEditor = sEditors.getRange('A2').getValue();
  if (nAddEditor != 0){
  var vAddEditor = sEditors.getRange('A3:A'+nAddEditor).getValues();
  sheet.addEditors(vAddEditor);
   }
  
  var nRemoveEditor = sEditors.getRange('B2').getValue();
  if (nRemoveEditor != 0){
  var vRemoveEditor = sEditors.getRange('B3:B'+nRemoveEditor).getValues();
  
  for (j=0;j<vRemoveEditor.length;j++) {
    sheet.removeEditor(vRemoveEditor[j])
  }
  }
  
}

脚本从第2行获取列表中最后一封电子邮件的行号,然后通过.getRange将第3行的电子邮件获取到该行。

enter image description here

任何与此有关的帮助都会有很大帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

vRemoveEditor是2D数组。您仅使用vRemoveEditor[j]索引到外部数组中。您需要同时索引两个索引以获得原始值:vRemoveEditor[j][0]

相关问题