Google Apps脚本用于删除包含D列中某些值的电子表格的最后一行(或第一行)

时间:2013-01-16 05:57:11

标签: google-apps-script google-sheets

我做了很长时间的搜索,无法找到我要找的东西。也许有人在那里可以帮忙吗?

我有一个Google Apps脚本,用于删除D列中包含“Hello”的电子表格中的行。

function deleteRow() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Sheet1');
  var values = s.getDataRange().getValues();

  for( var row = values.length -1; row >= 0; --row )
    if (values[row][3] == 'Hello')
      s.deleteRow(parseInt(row)+1);
};

但是,我需要一个只删除一行的脚本 - 列D中带有'Hello'的最低行。 此外,还有一个类似的脚本,用D列中的'Hello'删除最高行。

有谁知道如何实现这一目标?非常感谢您的宝贵帮助。

第一列是时间戳(数据来自表单),因此如果脚本可以删除D列中包含“Hello”的最旧行,那也可以! (类似地,在D列中用'hello'删除最近一行的脚本。)

1 个答案:

答案 0 :(得分:1)

其实非常简单。只要你达到最高或最低的行就会爆发(我假设第1行为高,第10行为低)。

function deleteHighestRow() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Sheet1');
  var values = s.getDataRange().getValues();

  for( var row = 0; row < values.length ; row ++ ){
    if (values[row][3] == 'Hello'){
      s.deleteRow(row+1);
      break;
    }
  }
};

function deleteLowestRow() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Sheet1');
  var values = s.getDataRange().getValues();

  for( var row = values.length -1 ; row >= 0 ; row-- ){
    if (values[row][3] == 'Hello'){
      s.deleteRow(row+1);
      break;
    }
  }
};