0

長い検索をしましたが、探しているものが見つかりませんでした。多分そこに誰かが親切に助けることができますか?

D列に「Hello」を含むスプレッドシートから行を削除するGoogleAppsScriptがあります。

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);
};

ただし、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 に答える