首页 > 解决方案 > 你如何将代码应用于谷歌工作表上的所有标签

问题描述

谷歌脚本的新手......所以道歉..

我有下面的代码可以工作......但是我还有另外十个选项卡需要应用......有没有办法编写这个,所以你不必引用每个活动表?

这个想法是如果其中存在某个值,则自动隐藏行和列......

function onOpen()
{
  var s = SpreadsheetApp.getActive().getSheetByName('O4');
  s.showRows(1, s.getMaxRows());

  s.getRange('BQ:BQ')
    .getValues()
    .forEach( function (r, i) {
    if (r[0] == 'Done') 
      s.hideRows(i + 1);
    });

  var b = SpreadsheetApp.getActive().getSheetByName('O4');
b.showColumns(1, b.getMaxColumns());
b.getRange('135:135')
    .getValues()[0]
    .forEach(function (r, i) {
        if (r && r == 'N') b.hideColumns(i + 1)
    });

    var s = SpreadsheetApp.getActive().getSheetByName('OG3');
  s.showRows(1, s.getMaxRows());

  s.getRange('BQ:BQ')
    .getValues()
    .forEach( function (r, i) {
    if (r[0] == 'Done') 
      s.hideRows(i + 1);
    });

  var b = SpreadsheetApp.getActive().getSheetByName('OG3');
b.showColumns(1, b.getMaxColumns());
b.getRange('135:135')
    .getValues()[0]
    .forEach(function (r, i) {
        if (r && r == 'N') b.hideColumns(i + 1)
    });
}

标签: google-apps-scriptgoogle-sheets

解决方案


您可以使用此代码段遍历工作表中的所有选项卡。

var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
sheets.forEach(function (sheet) {
  callYourFunction(sheet)
})

如果您需要在特定工作表上应用您的代码,请执行此操作。

var sheets = ['SheetA', 'SheetB', 'SheetG', 'SheetH', 'SheetM']
for (var i = 0; i < sheets.length; i++) {
  var sheetName = sheets[i]
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  if (sheet != null) {
    callYourFunction(sheet)
  }
}

希望有帮助


推荐阅读