繁体   English   中英

编译空行列表并将其隐藏在Google App脚本中

[英]Compiling list of empty rows and hiding them in Google App Script

正如名称函数所揭示的那样,我需要从第4列开始隐藏一些空白行,但是一步一步地进行操作会使过程非常缓慢,因此我的想法是将所有值都放入一个列表中,然后将此列表提供给hideRows函数并一次隐藏所有行。 这给了我一个错误,但老实说我无法弄清楚我在做什么错。 谢谢您的帮助。

 function HidingYoMama() { for (var i=8;i<415;i++) { var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var targetRow = ss.getRange(i,4,1,ss.getLastColumn()); var isBlank = targetRow.isBlank(); var title = ss.getRange(i,1,1,3).isBlank(); var hideThisRows = []; if (title == false) { if(isBlank == true) { var result = hideThisRows.push(targetRow[i]); Logger.log(result); } } } var hideThem = ss.hideRows(hideThisRows); Logger.log(hideThem); #Those rows are out of bounds. (line 187, file "Code") } 

我看了一下hideRow(s)方法的文档。 因此,如果您在下面看,您将看到该方法接受两个参数。 rowIndex(我应该从哪一行开始隐藏),并且numRows接受我应该从起始点开始向下隐藏多少行。

hideRows(rowIndex,numRows)

这些参数都接受单个整数值。 一个示例是:sheet.hideRows(1,3)这将从第一行开始隐藏,然后隐藏随后的3行。)

由于正在有效地尝试将“ [1,2,3,4,5,6,7,8]”推入接受“ 1”的内容,所以您会收到错误消息。

我在150行(带有一个空白值)上测试了此代码,它似乎运行良好。 (执行时间为12秒。)希望这会有所帮助。

function hideRows() {

  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getActiveSheet()


  for (var i = 1; i < sheet.getLastRow(); i++) {
    if(sheet.getRange(i, 1, 1, 1).isBlank()) {
     sheet.hideRows(i)

  }

}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM