[英]Hide blank rows in Google Spreadsheet based on value OR blank
为了使用 Google Apps 脚本以编程方式隐藏行,您可以使用任何hideRow(row)
、 hideRows(rowIndex)
和hideRows(rowIndex, numRows)
函数(参见此处)。
为了完成您自己的需求,我开发了以下代码:
var startRow = 27;
var colToCheck = 12; // Column L
function shouldHideRow(ss, rowIndex, rowValue) {
if (rowValue != '') return false;
if (ss.getRange(startRow + rowIndex, colToCheck, 1, 1).isPartOfMerge()) return false;
if (ss.getRange(startRow + rowIndex + 1, colToCheck, 1, 1).isPartOfMerge()) return false;
return true;
}
function myFunction() {
var ss = SpreadsheetApp.getActive().getSheets()[0];
var numRows = ss.getLastRow();
var elements = ss.getRange(startRow, colToCheck, numRows).getValues();
for (var i=0; i<(numRows - startRow); i++) {
if (shouldHideRow(ss, i, elements[i][0])) {
ss.hideRows(startRow + i);
}
}
// Hide the rest of the rows
var totalNumRows = ss.getMaxRows();
if (totalNumRows > numRows)
ss.hideRows(numRows+1, totalNumRows - numRows);
}
在决定是否隐藏行时检查的条件如下:
我需要根据值自动隐藏/取消隐藏谷歌表格中的行,并通过以下代码解决:
跑的时间不长,一会就跑完。 我通过编辑触发器自动播放它,这意味着当我编辑谷歌工作表时,它会根据值自动隐藏或取消隐藏行。
我建议这个而不是上面花费太多时间来执行的。
var startRow = 7;
var colToCheck = 1; // Column A
function hideShow() {
var sh=SpreadsheetApp.getActive().getSheetByName('Print Staff Statement');
var rg=sh.getRange(startRow,colToCheck,sh.getLastRow(),1);
var vA=rg.getValues();
for(var i=0;i<vA.length;i++) {
if(vA[i][0]<1) {
sh.hideRows(i+startRow);
}
if(vA[i][0]>1) {
sh.showRows(i+startRow);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.