【问题标题】:Find last row with Data in Column D starting the search at Row 4 in Google App Script查找 D 列中数据的最后一行,从 Google App Script 中的第 4 行开始搜索
【发布时间】:2021-08-30 13:30:32
【问题描述】:

我正在尝试找到一种方法来查找 D 列中包含数据的最后一行。我还希望从第 4 行开始搜索。

我真的很挣扎,希望有任何帮助。

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

可以参考这段代码:

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2');
  var rowOffset = 3;
  var count = sheet.getRange('D4:D').getDisplayValues().flat().filter(String).length;
  var lastRow = count+rowOffset;
  Logger.log(lastRow);

它有什么作用?

  1. 选择 Range D4:D 并获取其值,因为您希望从第 4 行开始获取 D 列中数据的最后一行。
  2. 使用 array.flat() 将二维数组变为一维数组。
  3. 使用 array.filter() 删除空值。然后得到它的数组长度
  4. 要获取最后一行索引,请使用包含我们在步骤 3 中获得的数据的单元格计数并将其添加到 3(从我们在第 4 行开始搜索的起始偏移量)

注意:

  • 此解决方案仅在您之间没有空行的情况下才有效。

输出:

Execution log
2:01:53 AM  Notice  Execution started
2:01:54 AM  Info    13.0
2:01:55 AM  Notice  Execution completed

【讨论】:

  • 如果您遇到问题请告诉我
【解决方案2】:

有很多方法可以找到列中的最后一个值,但这里有一种。看看这是否有帮助!

function myFunction() {
  const spreadsheet = SpreadsheetApp.openByUrl('Insert Sheet URL Here');
  const sheet = spreadsheet.getSheetByName('Insert Sheet Name Here - e.g. Sheet1');
  const lastSheetRow = sheet.getLastRow();
  let lastColumnRow = 'This column is empty';
  let reversedColumnValues = sheet.getRange(1, 4, lastSheetRow).getValues().reverse();
  for (index in reversedColumnValues) {
    if (reversedColumnValues[index][0] != '') {
      lastColumnRow = lastSheetRow - index;
      break;
    }
  }
  Logger.log(lastColumnRow);
}

此 Apps 脚本视频也可以帮助您:https://www.youtube.com/watch?v=1Po1QElOFPk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多