2015-10-30 95 views
0

我有一个谷歌电子表格脚本的范围。谷歌电子表格脚本“细胞参考超出范围”

var thisClientOutputRange = outputSheet.getRange(thisClientStartRow,thisClientStartColumn, monthsToSim + 3, 1); 
Logger.log(thisClientOutputRange.getA1Notation()); 

输出是:

[15-10-29 18:43:06:461 GALT] B7:B57 

这也正是我打算解决这个特定的客户端(目前在for循环中循环的)的范围。

我可以做

var thisClientOutputNameRange = thisClientOutputRange.getCell(1,1); 
thisClientOutputNameRange.setValue(thisClientName); 

而且我可以在B7看到正确的值。现在的问题是,如果我尝试做

var thisClientOutputNameRange = thisClientOutputRange.getCell(1,2); 

我得到的错误Cell reference out of range正好这条线。我需要在C7上写点东西。

按照getCell文档:

var range = sheet.getRange("B2:D4");

//行和列在这里是相对于范围。

// getCell(1,1)在此代码返回在B2单元格,B2

我必须有一个非常愚蠢的错误,但我不能找到它。任何想法可能会出现我的逻辑错误?

谢谢

回答

1

范围的getCell(row,column)方法返回范围内的单元格。行和列的坐标是相对于范围的。在getCell(1,2)的示例中,row = 1和column = 2表示范围第一行和第二列的单元格。但是,范围B7:B57只有一列。因此,单元格引用超出了范围。

+0

就这么简单。谢谢。我的错误是在'outputSheet.getRange'声明中,我切换了最后2个参数。 – otmezger

+0

它应该是:var thisClientOutputRange = outputSheet.getRange(thisClientStartRow,thisClientStartColumn,1,monthsToSim + 3);' – otmezger

相关问题