【问题标题】: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);
它有什么作用?
- 选择 Range
D4:D 并获取其值,因为您希望从第 4 行开始获取 D 列中数据的最后一行。
- 使用 array.flat() 将二维数组变为一维数组。
- 使用 array.filter() 删除空值。然后得到它的数组长度
- 要获取最后一行索引,请使用包含我们在步骤 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