繁体   English   中英

在 Google Apps 脚本中循环重置 function

[英]Looping a reset function in Google Apps Script

我正在尝试循环重置 function,这样我就可以在同一个电子表格中的 30 多个不同的工作表中应用它。

我过去找到了答案,但我无法修改它以使其正常工作。

function reset() {
  var keys = ['my spreadsheet id']; // list of spreadsheet ids
  for (var i = 0; i < keys.length; i++) {
    var ss = SpreadsheetApp.openById(keys[i]);
    var sheet = ss.getSheetByName('sheet name'); // i tried writing multiple sheet names here already but it doesn't work, hence trying to make the loop
    sheet.getRange('C3').setValue('X');
  }
}

这里提到了我正在谈论的循环: 一个 function 用于 Google Sheets 中的多个工作表

我不需要得到所有的床单。 应排除 2 张纸。 我需要帮助将它应用到上面发布的 function 上。

解决方案:

您可以使用getSheets()获取电子表格中的所有工作表,并使用filter()排除已定义的工作表:

function reset() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var exclude = ['Sheet1','Sheet2'];
  sheets.filter(s => exclude.indexOf(s.getName()) == -1).forEach(s => s.getRange('C3').setValue('Z'));
}

参考:

获取表格()

创建要排除的工作表数组,并确保在设置值时不包括它们:

function reset() {
  const key = 'my spreadsheet id';
  const sheetsToExclude = ["Sheet2","testSheet"]; // add the sheet names you want to exclude
  const sheets = SpreadsheetApp.openById(key).getSheets();
  sheets.forEach(sheet => {
       if(!sheetsToExclude.includes(sheet.getName())){    
           sheet.getRange('C3').setValue('X')
  }});
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM