找到C列的LastRow(当Col A和B有不同的行大小时)?

mio*_*odf 3 google-sheets google-apps-script

如何找到C列的最后一个使用过的单元格?

示例:"Sheet1":"Col A"和"Col B"有1200行.而"Col C"只有一排.

## ColA  ColB   ColC
##    1     1      1
##    2     2   empty
## ..    ..     ..
## 1200  1200   empty
Run Code Online (Sandbox Code Playgroud)

以下是我不成功的测试:

Function find_last_row_other_column() {
var ws_sheet =
var ws = SpreadsheetApp.openById("Dy...spreadsheet_id...4I")
var ws_sheet = ws1.getSheetByName("Sheet1");

var lastRow = ws_sheet.getRange("C").getLastRow();
var lastRow = ws_sheet.getRange("C:C").getLastRow();
var lastRow = ws_sheet.getRange(1,3,ws_sheet.getLastRow());  1200 rows for colA! instead of row = 1 for col C.
}
Run Code Online (Sandbox Code Playgroud)

注意:我不能使用C1,因为下次我使用该功能时它将是C1200或其他东西.

var lastRow = ws_sheet.getRange("C1").getLastRow();
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我的下一个目标是将C1的结果复制/粘贴到C2:C1200中.这是我的测试:

var lastRow = ws_sheet.getLastRow();
var target_range = ws_sheet.getRange(1,3,lastRow,1); //C1 until last row
var Formula_values = source_range.getValues();
target_range.setValues(Formula_values);
Run Code Online (Sandbox Code Playgroud)

提前致谢 ;)

ps:我花了2个小时.我已经尝试过类似的问题以及他们在本网站上提供的解决方案,但我不能让它们发挥作用.我搞不清楚了 !: 更有效的方法是查找特定列中的最后一行?获取特定列功能的最后一行 - 最佳解决方案

Ser*_*sas 8

正如我在上面的评论中提到的,这是StackOverFlow上得分最高的主题...

原始帖子返回列中最后一个单元格的值,但(非常)小修改使它返回行索引.

原帖:

Script:

function lastValue(column) {
  var lastRow = SpreadsheetApp.getActiveSheet().getMaxRows();
  var values = SpreadsheetApp.getActiveSheet().getRange(column + "1:" + column + lastRow).getValues();

  for (; values[lastRow - 1] == "" && lastRow > 0; lastRow--) {}
  return values[lastRow - 1];
}
Run Code Online (Sandbox Code Playgroud)

已修改为返回列中上次使用的单元格的索引:

function lastValue(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;
}
Run Code Online (Sandbox Code Playgroud)