计算工作表中的行数,然后使用Google Apps脚本在Google电子表格中减去

时间:2017-06-04 08:29:51

标签: google-apps-script google-sheets

我试图设置动态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。

我找不到错误。请帮帮我。

1 个答案:

答案 0 :(得分:0)

问题是,在JavaScript / Google Apps脚本中,数组索引基于0(零),行/列索引基于1(一)。换句话说,具有七个元素的数组的长度为7,但最后一个元素的索引为六。