如何使用Google Apps Script删除Google Sheets中最后N行数据?
使用Google Apps Script删除Google Sheets中的最后N行
一、删除整个工作表的最后N行
直接使用以下脚本,可处理边界情况避免报错:
function deleteLastNRowsOfSheet(n) { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const totalRows = sheet.getLastRow(); // 若N大于等于总行数,直接清空所有数据行 if (n >= totalRows) { sheet.deleteRows(1, totalRows); return; } // 计算删除起始行:总行数 - N + 1 const startRow = totalRows - n + 1; sheet.deleteRows(startRow, n); }
getLastRow():获取工作表中有数据的最后一行行号- 边界处理:防止N超出总行数时触发错误,直接清空所有数据行
deleteRows(startRow, n):从起始行开始,连续删除N行
二、删除指定数据区域内的最后N行
针对特定单元格区域(如A1:D100)删除最后N行,脚本如下:
function deleteLastNRowsOfRange(rangeNotation, n) { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getRange(rangeNotation); const rangeTotalRows = range.getNumRows(); // 若N大于区域总行数,删除整个区域的行 if (n >= rangeTotalRows) { sheet.deleteRows(range.getRow(), rangeTotalRows); return; } // 计算区域内删除起始行:区域起始行 + 区域行数 - N const startRow = range.getRow() + rangeTotalRows - n; sheet.deleteRows(startRow, n); }
调用示例
例如要删除A2:C50区域的最后5行,执行:
deleteLastNRowsOfRange("A2:C50", 5);
getRange(rangeNotation):通过单元格符号定位目标区域getRow()/getNumRows():分别获取区域的起始行号和总行数- 同样加入边界判断,避免N超出区域行数引发异常
内容的提问来源于stack exchange,提问作者mert dökümcü
相关产品推荐
相关产品推荐

