我可以使用单元格数组作为脚本的值吗?

时间:2019-03-26 04:42:46

标签: google-apps-script

我发现一个脚本可以很好地满足我的需求,但是我想进行更改以使其效果更好。我要更改的是用于在选项卡/工作表中选择单元格数组的行var hideSheetsContaining = "tw";,因为这些值会定期更改并且更易于编辑。

function hideTW() {

  // My clumsy edit!
  var hideSheetsContaining = "tw";

  // Original script
  // var hideSheetsContaining = Browser.inputBox("Hide sheets with names containing:");
  if (sheetMatch(hideSheetsContaining)){
    for (var i = 0; i < sheetsCount; i++){
      var sheet = sheets[i]; 
      var sheetName = sheet.getName();
      Logger.log(sheetName); 
      if (sheetName.indexOf(hideSheetsContaining.toString()) !== -1){
        Logger.log("HIDE!");
        sheet.hideSheet();
      }
    }
  } else { 
    noMatchAlert();
  }
}

如果我不能使用单元格数组,如何将其从单个字符串更改为几个不同的值?理想情况下,它们将是精确值,但是也可以使用“包含...”列表。

谢谢!

特雷

1 个答案:

答案 0 :(得分:1)

我稍微修改了您的代码,并添加了一个数组来保存要搜索和删除的字符串。用字符串填充数组,然后尝试。

function hideTW() {
  // My clumsy edit!
  var hideSheetsContaining = ['str1', 'str2', 'str3']; // put strings to search here
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();

  sheets.forEach(function(sheet) {
    var sheetName = sheet.getName();
    hideSheetsContaining.forEach(function(str) {
      if (sheetName.indexOf(str) !== -1) {
        Logger.log('HIDE-' + sheetName);
        sheet.hideSheet();
      }
    });
  });
}