Google电子表格脚本删除新行

时间:2014-02-14 18:36:28

标签: google-apps-script google-sheets

这是我第一次尝试使用谷歌脚本,所以请原谅我的经验不足。

我有一个电子表格,如果超过特定金额(我的情况下为8个),我希望删除行。

我认为这应该有用,但我必须遗漏一些东西。我的问题是没有删除任何行,但也没有给出任何错误。

function killNewRows() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var data = sheet.getDataRange();  

  if (data.length > 8) {
    for (var row = data.length; row >= 9; row--) {
       sheet.deleteRow(row);
      }
    }
  }  

1 个答案:

答案 0 :(得分:0)

这种例程有特殊的方法......这是一个工作的例子:

function killNewRows() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var lastRow = sheet.getLastRow();
  var maxRow = sheet.getMaxRows();
  if(lastRow>8){
    sheet.deleteRows(9, maxRow-8);
  }
}
不过,请注意deleteRows(start,numberOfRows)方法比每行逐个删除更快。


编辑:工作表示例here,制作您自己的副本,不要忘记从脚本编辑器>添加触发器资源>添加新触发器>来自电子表格>的onChange

当然,您可以通过简单地添加一个调用此函数的“on change”触发器来自动完成。