Google Apps Script按单元格值在A列最后数据行下方插入行问题
Google Sheets插入行脚本修正方案
原代码问题原因
原代码的循环逻辑是遍历从第2行到工作表最后编辑行的所有行,在每一行后面都插入1行,因此会出现批量在第2行后连续插入行的问题,不符合需求要求。
修正后可直接使用的代码
function insertRowsAfterLastDataInA() { const ss = SpreadsheetApp.getActiveSpreadsheet(); // 目标操作工作表:test sheet const targetSheet = ss.getSheetByName('test sheet'); // 存储插入行数的配置工作表,若你有自定义的表名,可将下方getSheets()[0]替换为getSheetByName('你的配置表名称') const configSheet = ss.getSheets()[0]; // 读取B2单元格的插入行数 const insertCount = configSheet.getRange('B2').getValue(); // 校验插入行数合法性 if (!Number.isInteger(insertCount) || insertCount <= 0) { SpreadsheetApp.getUi().alert('请在配置表B2单元格输入正整数作为插入行数'); return; } // 查找A列最后一个带数据的行号 const colAValues = targetSheet.getRange('A:A').getValues(); let lastDataRowInA = 0; for (let i = colAValues.length - 1; i >= 0; i--) { if (colAValues[i][0] !== '') { lastDataRowInA = i + 1; // 数组下标从0开始,工作表行号从1开始,因此做+1处理 break; } } // 兼容A列全空的边界场景 lastDataRowInA = lastDataRowInA === 0 ? 1 : lastDataRowInA; // 批量插入指定数量的空白行 targetSheet.insertRowsAfter(lastDataRowInA, insertCount); }
功能说明
- 自动识别
test sheet工作表A列最后一个带数据的行,在该行下方插入空白行 - 插入行的数量从配置工作表的B2单元格读取,支持灵活调整
- 自带输入校验,避免非法数值导致的脚本运行错误
- 批量插入逻辑相比循环单条插入性能更高,适合大数量行插入场景
内容的提问来源于stack exchange,提问作者Mr.YJY
相关产品推荐
相关产品推荐

