我有一个脚本,希望在我的Google工作表中的特定选项卡上运行,但不一定要在所有选项卡上运行。我尝试执行两个名称不同的脚本,但是只有最后一个保存的脚本会运行。如何编写此脚本以在特定选项卡上运行?这是我的开始脚本:
display: inline-block;
vertical-align: middle;
我尝试使用发布的另一个问题的建议进行这样的修改,但这没有用。
function onEdit() {
var s = SpreadsheetApp.getActive().getSheetByName('Proposal');
s.showRows(1, s.getMaxRows());
s.getRange('B:B')
.getValues()
.forEach( function (r, i) {
if (r[0] == 'Hide')
s.hideRows(i + 1);
});
}
有关如何正确执行此操作的任何建议?如果我认为这更容易,该如何在所有标签上执行此操作?
谢谢!
答案 0 :(得分:0)
您可以通过2种方式来实现。使用“排除”或“仅”。
排除是指,如果当前工作表是其中之一,则不要这样做。
仅意味着,仅当当前工作表是其中之一时才执行此操作。
使用以下代码并启用任何一个选项,然后尝试。要启用该功能,请将相应的工作表名称添加到excludes
或only
数组中,并通过取出//
取消注释行。它仅适用于当前工作表,不适用于电子表格中的所有工作表。
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
// use only one of these 2 options
// add sheets names to exclude, example ['Sheet1', 'Sheet2']
// to exclude these sheets enable these 2 lines below by uncommenting
// var excludes = [];
// if (excludes.indexOf(s.getName()) != -1) return;
// add sheet names to work on only these sheets, as above
// to work on only these sheets enable these 2 lines below by uncommenting
// var only = [];
// if (only.indexOf(s.getName()) == -1) return;
s.showRows(1, s.getMaxRows());
s.getRange('B:B')
.getValues()
.forEach(function(r, i) {
if (r[0] == 'Hide') s.hideRows(i + 1);
});
}
编辑
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var only = [
'Proposal',
'Materials List - All',
'Materials List - Shingles',
'Materials List - Access',
'Work Order'
];
only.forEach(function(name) {
var s = ss.getSheetByName(name);
s.showRows(1, s.getMaxRows());
s.getRange('B:B')
.getValues()
.forEach(function(r, i) {
if (r[0] == 'Hide') s.hideRows(i + 1);
});
});
}