如何用Google App Script查找D列从第4行开始的最后一个有数据的行
Google App Script 查找D列从第4行开始最后一个非空行的解决方案
核心思路
- 先拉取D列第4行到表格最后一行的所有值,避免遍历整列浪费性能
- 倒序遍历拉取到的数值数组,遇到第一个非空值就换算对应行号返回,不用遍历所有内容
- 判断空值时额外过滤纯空格、空字符串的情况,避免公式返回空、误输入空格导致的判断错误
可直接运行的代码示例
function getLastDataRowOfColumnD() { // 可替换为getSheetByName("你的工作表名")指定工作表 const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const searchStartRow = 4; // 搜索起始行 const columnDIndex = 4; // D列对应的列编号 // 获取D列从第4行开始的所有单元格内容 const rowCount = targetSheet.getLastRow() - searchStartRow + 1; const columnValues = targetSheet.getRange(searchStartRow, columnDIndex, rowCount, 1).getValues(); // 倒序查找第一个非空单元格 for (let i = columnValues.length - 1; i >= 0; i--) { const currentVal = columnValues[i][0]; if (currentVal !== "" && String(currentVal).trim() !== "") { // 数组下标从0开始,加上起始行就是实际表格行号 return i + searchStartRow; } } // 第4行及以下全为空的场景返回null return null; }
补充说明
如果你需要过滤公式返回的空值,或者有其他特殊空值判定规则,只需要修改
if判断里的条件即可
调用该函数即可直接拿到目标行号,也可以根据需求修改起始行、指定列号适配其他搜索场景
内容的提问来源于stack exchange,提问作者Simon Davies
相关产品推荐
相关产品推荐

