gpt4 book ai didi

google-apps-script - 使用 Google Apps 脚本隐藏和取消隐藏电子表格行

转载 作者:行者123 更新时间:2023-12-01 16:34:22 25 4
gpt4 key购买 nike

我在编写脚本方面是全新的,并且刚刚了解了 Google 脚本编辑器。我目前正在尝试编写一个来根据电子表格上的值自动隐藏行。我设法通过查看各种网站来做到这一点,但如果值发生变化,我也想取消隐藏行。

我对此很陌生,所以我复制了当前的脚本,但我认为第 12 行(“其他”部分)有问题。

   function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Sheet = ss.getActiveSheet();
var LastRow = Sheet.getLastRow();
for( i=1 ; i<=LastRow ; i++) { // i <= lastrow
var status = Sheet.getRange("A"+i).getValue(); // Change A to
the completed column
if (status == 0) { // status == 0
Sheet.hideRows(i);
else {
Sheet.unhideRows(i);
}
}
}
}

我恳请有人帮助我在最后编写正确的代码,以便能够取消隐藏之前根据值隐藏的行。我碰巧处理不断变化的数据,隐藏/取消隐藏行对我来说非常重要。谢谢

最佳答案

  • 您需要在启动 else 子句之前关闭 if block 。如果您干净地格式化代码,就更容易注意到此类语法错误。

  • Sheet 类没有 unhideRows() 方法。

<小时/>

用于隐藏行和取消隐藏行的方法之间有一些重要的区别需要注意。

为了隐藏,提供了以下方法:

为了取消隐藏,提供了一个方法:

如上所述,没有与 hideRows() 方法等效的取消隐藏方法。

hideRow(row)unhideRow(row) 都采用 Range对象作为参数,而不是行号。

因此,您需要存储从 getRange() 方法返回的 Range 对象,以便在调用 hideRows() 时将其作为参数提供.

<小时/>

这是经过清理和更正的版本:

function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Sheet = ss.getActiveSheet();
var LastRow = Sheet.getLastRow();
for (i = 1; i <= LastRow; i++) {
var statusRange = Sheet.getRange("A" + i);
if (statusRange.getValue() == 0) {
Sheet.hideRows(i);
} else {
Sheet.unhideRow(statusRange);
}
}
}

关于google-apps-script - 使用 Google Apps 脚本隐藏和取消隐藏电子表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57839009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com