我正在尝试设置一个脚本,该脚本将工作表中除标题和最后一行以外的所有行都隐藏起来。该脚本可以正常工作,但是随后我在工作表的顶部添加了一个隐藏行,然后停止了该行。我认为仅调整数字然后从第三行开始将是一个简单的解决方法,因为第二行现在是我冻结的标题,但它似乎对我不起作用。我遇到的错误是我尝试执行sh.hideRow时说“这些行超出范围”。对于我的变量destRange。我假设问题出在我的getRange的第三个参数中,但是我不知道还有什么可能。
// *****NOT WORKING*****
// HIDES ALL ROWS EXCEPT HEADER THEN UNHIDES LAST ROW
function HideRowsByQuarter() {
var ss = SpreadsheetApp.openById('spreadsheetId').getSheets()
.filter(function(sh) {
return sh.getTabColor() == '#ff9901';
}).forEach(function(sh) {
var destRange = sh.getRange(3, sh.getMaxColumns(), sh.getLastRow());
var unhideRow = sh.getRange(sh.getLastRow(), 1)
sh.hideRow(destRange);
sh.unhideRow(unhideRow);
})
};
答案 0 :(得分:1)
如果我的理解是正确的,那么该修改如何?
getRange()
的getRange(3, sh.getMaxColumns(), sh.getLastRow())
用作隐藏行。
getRange(3, sh.getMaxColumns(), sh.getLastRow() - 3)
。我认为这可能是您遇到问题的原因。unhideRow()
。请按如下所示修改脚本。
从:var destRange = sh.getRange(3, sh.getMaxColumns(), sh.getLastRow());
var unhideRow = sh.getRange(sh.getLastRow(), 1)
sh.hideRow(destRange);
sh.unhideRow(unhideRow);
至:
var destRange = sh.getRange(3, sh.getMaxColumns(), sh.getLastRow() - 3);
sh.hideRow(destRange);
如果此修改无法解决您的问题,我深表歉意。那时,为了正确地复制您的情况,您可以提供示例电子表格吗?当然,请删除您的个人信息。我想修改脚本。