Google apps script 使用范围的循环值来设置值
所以我有一个复杂的谷歌表,我用它来跟踪日历事件,我需要一个循环来运行它,然后用它的值填充相关的单元格。工作表名称和相关范围是在google工作表中预先计算的,因此循环提取该数据,然后需要使用它来设置循环中的范围值及其值。现在,它提取图纸名称没有问题,但引发了一个范围错误,指出它不是有效的范围(我知道这就像我手动将其添加为3,17,1,1一样),它填充循环值sheetname上的正确单元格 那么,我能做些什么来从循环中得到范围值呢Google apps script 使用范围的循环值来设置值,google-apps-script,Google Apps Script,所以我有一个复杂的谷歌表,我用它来跟踪日历事件,我需要一个循环来运行它,然后用它的值填充相关的单元格。工作表名称和相关范围是在google工作表中预先计算的,因此循环提取该数据,然后需要使用它来设置循环中的范围值及其值。现在,它提取图纸名称没有问题,但引发了一个范围错误,指出它不是有效的范围(我知道这就像我手动将其添加为3,17,1,1一样),它填充循环值sheetname上的正确单元格 那么,我能做些什么来从循环中得到范围值呢 函数UpdateUsersTracker(){ //日历详情()
函数UpdateUsersTracker(){
//日历详情();
var ss=SpreadsheetApp.getActive();
var sheet=ss.getSheetByName(“日历事件的副本”);
var VAL=sheet.getRange(“B14:B”).getValues();
var last=vals.filter(字符串).length+13;
var events=sheet.getRange('B14:T'+last.getValues();
对于Adelin正确回答的(var i=0;i,getRange不接受getRange(行、列、numRows、numColumns)这样的ReAge类型,仅适用于getRange(a1表示法)
来找出答案。这个字符串也很奇怪。varlast
不应该是个问题,它只是用来获取包含数据的最后一行号,以确定var事件的范围大小,但获取最后一行是一种不寻常的方式。为什么不使用内置的getLastRow()
method?尝试使用var last=sheet.getLastRow()
而不是当前的值。它返回相同的值,但在最终的getRange().setValue()上仍然失败由于找不到范围。工作表中范围值的日志在第一个实例中正确返回为3,17,1,1。我倾向于不使用getLastRow,因为您不能仅对一列执行此操作,我所做的很多操作都可能具有不同的列长度,因此getLastRow不足以解决问题。问题可能是在电子表格中。问题是,如果表示未找到范围
,该范围未找到,因此任何内容都将传递给getRange()
方法-不正确。您可以使用记录器自己调试它,也可以制作一份电子表格副本,让我们检查出了什么问题。正如我在注释中所述,实际上它接受这两种方法,但如果您只使用一个参数,它必须是一个注释。不过,很高兴您找到了解决方案。