You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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ü

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:12:24