修改AppScript脚本:取消隐藏行时排除Sheet首行
修改Google Apps Script实现取消隐藏时排除第一行
你的脚本逻辑没问题,要实现取消隐藏时跳过第一行,只需要在显示空行的分支里加个行号判断就行。
修改后的完整代码如下:
function onEdit(e) { const sh = e.range.getSheet(); const rg = e.source.getRangeByName("NamedRange1"); const sr = rg.getRow(); const sc = rg.getColumn(); const er = sr + rg.getHeight() - 1; const ec = sc + rg.getWidth() - 1; if (sh.getName() == "Sheet3" && e.range.columnStart >= sc && e.range.columnStart <= ec && e.range.rowStart >= sr && e.range.rowStart <= er && e.value) { const sh2 = e.source.getSheetByName("Sheet2"); const vs = sh2.getDataRange().getValues(); vs.forEach((r, i) => { const rowNum = i + 1; if (r.every(cell => cell == '')) { if (e.value == "A") { sh2.hideRows(rowNum); } else { // 取消隐藏时跳过第一行 if (rowNum !== 1) { sh2.showRows(rowNum); } } } }); } }
关键改动说明:
- 新增
rowNum变量,把循环索引i转换为实际行号,代码更易读 - 在取消隐藏的分支中添加了
rowNum !== 1的判断,这样第一行哪怕是空行,也不会被取消隐藏
内容的提问来源于stack exchange,提问作者Essem
相关产品推荐
相关产品推荐

