0

我进行了长时间的搜索,但找不到我要找的东西。也许有人在那里可以提供帮助?

我有一个 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”的最新行的脚本)。

4

1 回答 1

2

它实际上很简单。只要你打到最高或最低行(我假设第 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;
    }
  }
};
于 2013-01-16T06:41:23.687 回答