google-apps-script - 你如何将代码应用于谷歌工作表上的所有标签
问题描述
谷歌脚本的新手......所以道歉..
我有下面的代码可以工作......但是我还有另外十个选项卡需要应用......有没有办法编写这个,所以你不必引用每个活动表?
这个想法是如果其中存在某个值,则自动隐藏行和列......
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)
});
}
解决方案
您可以使用此代码段遍历工作表中的所有选项卡。
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)
}
}
希望有帮助
推荐阅读
- java - 如何使用“预测”Sgnature Def 在 Java 中加载 Tensorflow SavedModel?
- sql-server - 如何显示 DISTINCT 值 Group Wise
- c# - 在 .NET 核心中返回 HttpResponseMessage 时出错
- android - 更新到 androidx.appcompat:appcompat:1.1.0 后的语言更改问题
- hibernate - 在 Quarkus 中添加 Hibernate ORM Panache 时在测试中发生异常
- javascript - 设置动画持续时间的时刻
- unity3d - 统一为游戏视图添加分辨率
- spagobi - 运行新的 spagobi 应用程序 SBIErrorPage.title 时出错
- acumatica - Acumatica 中的 Muslti Select 控件未显示强制 (*) 符号
- c# - 我在使用 OWIN 的 asp.net webforms 应用程序中的 ADFS SSO 中出现错误