我试图设置动态getRange函数,所以我使用了getRange(row,column,numRows,numColumns)函数,我的示例如下:
var range = sheet.getRange(7,11,sheet.getLastRow(),sheet.getLastColumn());
结果是前。 sheet.getRange(7,11,200,30);
但是当我想使用这个范围时,例如,将一些数据放到工作表上,函数不会使用起点(startRow - 7,startColumn - 11)。所以我尝试从getLastRow()和getLastColumn()中减去它并且它可以工作但是给我十进制数(例如lastRow = 193.0)并且函数被压缩
function myFunction() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Arkusz1');
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn() - 2;
var lastColumnParse = parseInt(lastColumn, 10);
var range = sheet.getRange(1,1,lastRow, lastColumn);
var formatting = range.getBackgrounds();
var data = range.getValues();
for(var y = 1; y < data.length; ++y){
var message = '';
for(var x = 0; x < data[y].length; x++){
if(formatting[y][x] == '#ffff00'){
var header = data[0][x];
message += ' ' + header + ' - ' + data[y][x] + ' zł, ' + lastRow + ' ' + lastColumn;
};
data[y][lastColumn] = message
}
}
range.setValues(data);
}
错误信息是:
消息称宽范围不正确。输入7但应该是6。
在控制台中,我们可以看到,x = 7.0,而不是6。
我找不到错误。请帮帮我。
答案 0 :(得分:0)
问题是,在JavaScript / Google Apps脚本中,数组索引基于0
(零),行/列索引基于1
(一)。换句话说,具有七个元素的数组的长度为7,但最后一个元素的索引为六。