谷歌应用程序脚本-用另一个变量定义范围列表



我对此还很陌生,所以我甚至不确定这是否是最有效的方法,但我正试图通过使用单元格值来定义范围列表来在谷歌应用程序脚本中节省一些空间。

这是我现在拥有的代码:

function myFunction()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var aItems = s.getRange('F1').getValue();
var aItemList = s.getRangeList([aItems.getValue]);
Logger.log(aItemList);
}

变量aItems正在获取工作表上单元格F1的值,即'E2','E5'(我也尝试删除单元格编号周围的单引号,但这并没有改变结果(

使用aItemList,我试图使用aItems的值创建范围列表来定义范围。当我运行脚本时,我得到一个异常错误,指出找不到范围。

最终,aItemList变量的目的是拥有一个变量,该变量存储一个包含复选框的单元格列表,我可以在True和False之间进行切换。在我计划使用它的实际工作表上,将有数百个复选框,因此我希望避免在脚本中将它们全部列为数组的一部分。我之所以提到这一点,是因为我尝试过该代码的变体,这些变体成功地将aItemList记录为正确的字符串,但不允许我使用a ItemList作为引用将单元格值设置为true或false。

如果有人能让我知道这是否可能,我将不胜感激。和/或如果有更好的方法来完成这项任务,将特定单元格存储到变量中作为数组,我也将不胜感谢。

试试这个:

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var aItems = s.getRange('F1').getValue().split(',');
Logger.log(aItems);
let rgl = ss.getRangeList(aItems);
Logger.log(rgl.getRanges().map(r => r.getA1Notation()));
}

最新更新