假设今天的日期是1月26日,我有一张我正在测试的谷歌表,其中a列第3、15和27行输入了日期(1月19日、1月26和2月2日(。我试图隐藏1月19日和2月2日的那两排(以及接下来的12排(。
我发现了一个旧的帖子/解决方案,它只为第3行(1月19日(隐藏日期行。我不知道如何使它适应我的需要。如有任何帮助,我们将不胜感激。
function hideRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("Sheet1");
var v = s.getRange("A:A").getValues();
var today = new Date();
today.setHours(0, 0, 0, 0);
for (var i = s.getLastRow(); i > 2; i--) {
var t = v[i - 1];
if (t != "") {
var u = new Date(t);
if (u < today) {
s.hideRows(i);
}
}
}
前几周日期(隐藏我( |
---|
隐藏我1 |
隐藏我2 |
隐藏我3 |
隐藏我4 |
隐藏我5 |
隐藏我6 |
隐藏我7 |
隐藏我8 |
隐藏我9 |
隐藏我10 |
隐藏我11 |
隐藏我12 |
本周日期(演示( |
演示1 |
演示2 |
演示3 |
演示4 |
演示5 |
演示6 |
演示7 |
演示8 |
演示9 |
演示10 |
演示11 |
演示12 |
下周日期(隐藏我( |
隐藏我1 |
隐藏我2 |
隐藏我3 |
隐藏我4 |
隐藏我5 |
隐藏我6 |
隐藏我7 |
隐藏我8 |
隐藏我9 |
隐藏我10 |
隐藏我11 |
隐藏我12 |
这是我正在使用的一个解决方案。
function hideRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("Dude"); // Enter sheet name
var row = s.getRange('A2:A').getValues(); // Enter column letter that has the text "hide" and "unhide"
var cell = s.getRange('A1').getValue();
s.showRows(1, s.getMaxRows());
for(var i=0; i < row.length; i++){ if(row[i] != cell) { s.hideRows(i+2, 1); } // Value to hide
}
}