计算工作表中的行数,然后使用 Google Apps 脚本在 Google 电子表格上减去
Posted
技术标签:
【中文标题】计算工作表中的行数,然后使用 Google Apps 脚本在 Google 电子表格上减去【英文标题】:Count number of rows in sheet then subtract on a Google spreadsheet with Google Apps Script 【发布时间】:2017-06-04 08:29:50 【问题描述】:我正在尝试设置动态 getRange 函数,所以我使用 getRange(row, column, numRows, numColumns) 函数,我的示例如下所示:
var range = sheet.getRange(7,11,sheet.getLastRow(),sheet.getLastColumn());
结果是 ex。 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】:问题在于,在 javascript/Google Apps 脚本中,数组索引是基于 0
(零)的,而行/列索引是基于 1
(一)的。换句话说,一个有 7 个元素的数组的长度是 7,但最后一个元素的索引是 6。
【讨论】:
以上是关于计算工作表中的行数,然后使用 Google Apps 脚本在 Google 电子表格上减去的主要内容,如果未能解决你的问题,请参考以下文章