Удалить строку в Google Sheets на основе текста ячейки (если содержит) - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь создать сценарий, который будет автоматически удалять строку, если ячейка содержит, но не совсем точно, условие.Например, сценарий будет удалять строки, если ячейка содержит gmail.com, как часть большого электронного письма

123@gmail.com
123@yahoo.com
456@gmail.com
456@yahoo.com

Два электронных письма Yahoo будут сохранены, поскольку они не соответствуют условию.Однако я не уверен в правильной условной диктовке, которую следует использовать при написании сценария.Вот что у меня так далеко.

function deleteRows() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Sheet1');
  var r = s.getRange('B:B');
  var v = r.getValues();
  for(var i=v.length-1;i>=0;i--)
    if(v[0,i] 'gmail.com')
      s.deleteRow(i+1);
};

Я бы поставил ==, но это приведет к удалению только тех строк, которые точно соответствуют gmail.com.Что бы я использовал вместо ==, чтобы сделать его по существу текстом содержащим условие?

1 Ответ

0 голосов
/ 05 декабря 2018

Попробуйте это:

function deleteMatchingRows(string) {
  var string=string||'gmail.com';
  var ss = SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');
  var lngth=sh.getLastRow();
  var rg=sh.getRange(1,2,lngth,1);
  var vA=rg.getValues();
  var n=0;  
  for(var i=1;i<vA.length;i++){
    if(vA[i][0] && vA[i][0].indexOf(string)>-1){
      sh.deleteRow(i-n+1);
      n++;
    }    
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...