我正在编写一些代码,当我试图运行它时,我得到了一个错误,范围的起始列太小了。我真的不知道那是什么意思。
我在使用google应用程序脚本
我所犯的错误就在这条线上
var cellCup = ss.getRange(ctCup,0).activate().getValue();
const ss = SpreadsheetApp.openByUrl(THIS).getSheetByName('WP_Data');
var ctCup =114;
var cellCup = ss.getRange(ctCup, 0).activate().getValue();但它在这里起作用
var ctMHS = 3;
var cellMHS = ss.getRange('A3');
while ( cellMHS.offset(ctMHS, 0).getValue() != "" ) {
ctMHS++;
}这是我的第一个问题,所以老实说,我不确定我是否应该提供更多的信息。请让我知道
谢谢。
发布于 2022-02-10 16:06:03
根据Google文档https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow,-column
The column index of the cell to return; column indexing starts with 1.
这应该可以解决您的问题:
var cellCup = ss.getRange(ctCup, 1).activate().getValue();发布于 2022-02-10 16:18:51
正如Kostas所回答的,.getRange()的列和行索引应该从1开始。
此代码段使用0索引的原因是:
cellMHS.offset(ctMHS, 0).getValue().offset()方法不同于.getRange()方法:.offset()不需要一个绝对的单元格或行索引:它的参数相对于cellMHS表示的范围是偏移的,即离该范围有多远。因此,值0只意味着使用与原始范围相同的列。您甚至可以传递一个负偏移量来引用cellMHS左侧的列。
https://stackoverflow.com/questions/71068058
复制相似问题