繁体   English   中英

我不断收到一条错误消息,指出范围列太小

[英]I'm keep getting an error that says the column of the range is too small

我正在编写一些代码,当我尝试运行它时出现错误

范围的起始列太小。

我正在使用 Google Apps 脚本

我得到的错误是在这条线上

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++;
    }

正如 Kostas 所回答的那样, .getRange()的列和行索引应该从 1 开始。

此代码段使用 0 索引的原因:

cellMHS.offset(ctMHS, 0).getValue()

.offset()方法不同于.getRange()方法: .offset()不期望绝对单元格或行索引:它的 arguments 是对于cellMHS表示的范围的偏移量,即距离多远那个范围。 因此,值为 0 仅表示使用与原始范围相同的列。 您甚至可以传递负偏移量来引用cellMHS左侧的列。

根据 Google App Script 文档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();

如果您使用的是 Visual Studio Code,请尝试重新打开该程序,因为它发生在我身上,所以有点小故障。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM