GAS:查找给定行中的最后一列

时间:2018-10-08 20:50:03

标签: google-apps-script google-sheets

我具有以下功能。第一行lastRowF在给它的列中找到最后一行。它运作完美。

//Finds last row in a given column
function lastRowF(column) {
  var lastRow = SpreadsheetApp.getActiveSheet().getMaxRows();
  var values = SpreadsheetApp.getActiveSheet().getRange(column + "1:" + column + lastRow).getValues();

  for (; values[lastRow - 1] == "" && lastRow > 0; lastRow--) {}
  return lastRow;
}

第二个lastColF执行相同的操作,但对于给定行中的列。或者至少应该如此。

//Finds last column in a given row
function lastColF(row) {
  var lastCol = SpreadsheetApp.getActiveSheet().getMaxColumns();
//  var values = SpreadsheetApp.getActiveSheet().getRange("A" + row + ":" + colLetter(lastCol) + row).getValues();
  var values = SpreadsheetApp.getActiveSheet().getRange("A2:AB2").getValues();

  for (; values[lastCol - 1] == "" && lastCol > 0; lastCol--) {}
  return colLetter(lastCol);
}

实际上,该函数仅返回最初声明​​的lastColfor循环将立即退出。

我确定是values的问题,但我不知道为什么,这使我发疯。数组正确填充-msgBox(values)列出了该行中的所有值-但尝试调用单个值只会返回未定义。这对我来说没有任何意义,因为检查lastRowF中的整个数组和单个值可以很好地工作。

1 个答案:

答案 0 :(得分:0)

我不确定这是否对提问者有所帮助。无论如何,这是Stack Overflow中我最喜欢的代码(贷记Mogsdad,他又将其从另一个答案改编为另一个问题。这就是实际中的Stack Overflow的力量。)

要确定单列中的最后一行-(在2行代码中完成):

var Avals = ss.getRange("A1:A").getValues();
var Alast = Avals.filter(String).length;

您可以通过更改范围的方向对列执行相同的操作。

相关问题