我已经在下面编写了脚本,以隐藏所有选中了特定框的行,或者隐藏其他单元格中包含“较新”一词的行。我遇到的问题是,当我运行hideReviewed_函数时,它将撤消第二个函数hideNewer_完成的隐藏行。如何混合这2个以便可以运行1个功能,它既看起来又同时隐藏两个复选框和表示“较新”的项目?
function onOpen() {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Reviewed', functionName: 'hideReviewed_'},
{name: 'Newer', functionName: 'hideNewer_'}
];
spreadsheet.addMenu('Hiding Time', menuItems);
}
function hideReviewed_() {
var s = SpreadsheetApp.getActive().getSheetByName('2 Week Snapshot');
s.showRows(1, s.getMaxRows());
s.getRange('C:C')
.getValues()
.forEach( function (r, i) {
if (r[0] == 1)
s.hideRows(i + 1);
});
}
function hideNewer_(e) {
var s = SpreadsheetApp.getActive().getSheetByName('2 Week Snapshot');
s.showRows(1, s.getMaxRows());
s.getRange('J:J')
.getValues()
.forEach( function (r, i) {
if (r[0] == 'Newer')
s.hideRows(i + 1);
});
}
答案 0 :(得分:1)
您在这里:
function hideReviewed() {
var s = SpreadsheetApp.getActive().getSheetByName('Sheet1');
s.showRows(1, s.getMaxRows());
s.getRange('C:J').getValues().forEach(function (r, i) {if (r[0] == 1 || r[7] == "Newer") s.hideRows(i + 1)});
}
所做的更改:
r [0]是列C r [7]是J列
在示例电子表格中对此进行了测试,并且似乎可以正常工作。 希望这会有所帮助。