Как удалить одну и ту же строку на 2 листах в Gsheets? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть Gsheet, где, если мне нужно удалить строку, содержащую текст «none» на Листе 1, она также удалит эту же строку (или диапазон строк) на Листе 2.

У меня естьпопробовал следующий код, который удалит строку на Листе1, но я не могу заставить его удалить соответствующую строку на Листе2

function sort() { 
  var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1')
              SpreadsheetApp.getActive().getSheetByName('Sheet2')
  var rows = sheet.getDataRange(); 
  var numRows = rows.getNumRows(); 
  var values = rows.getValues(); 
  var rowsDeleted = 0; 

  for (var i = 0; i <= numRows - 1; i++) { 
    var row = values[i]; 
    if (row[9] == 'none') { 
      sheet.deleteRow((parseInt(i)+1) - rowsDeleted); rowsDeleted++; 
    } 
  } 
}; 

Ожидаемый результат - удалить одну и ту же строку на обоих листах, но прив тот момент, когда он удаляется только на Листе 1.

Спасибо!

И если бы текст «нет» был в другом столбце на Листе1, чем на Листе2, что бы я делал?Я пытался это, но это не похоже на работу:

function sort() { 
  var sheet1 = SpreadsheetApp.getActive().getSheetByName('Sheet1');
  var sheet2 = SpreadsheetApp.getActive().getSheetByName('Sheet2');

  var rows = sheet1.getDataRange(); 
  var numRows = rows.getNumRows(); 
  var values = rows.getValues(); 
  var rowsDeleted = 0; 

  for (var i = 0; i <= numRows - 1; i++) { 
    var row = values[i]; 
    if (row[9] == 'none') { 
      sheet1.deleteRow((parseInt(i)+1) - rowsDeleted);
    if (row[10] == 'none') {   
      sheet2.deleteRow((parseInt(i)+1) - rowsDeleted);
      rowsDeleted++; 
    } 
  } 
};}

1 Ответ

0 голосов
/ 15 мая 2019

Я бы создал две отдельные переменные для двух отдельных листов:

function sort() { 
  var sheet1 = SpreadsheetApp.getActive().getSheetByName('Sheet1');
  var sheet2 = SpreadsheetApp.getActive().getSheetByName('Sheet2');

  var rows = sheet1.getDataRange(); 
  var numRows = rows.getNumRows(); 
  var values = rows.getValues(); 
  var rowsDeleted = 0; 

  for (var i = 0; i <= numRows - 1; i++) { 
    var row = values[i]; 
    if (row[9] == 'none') { 
      sheet1.deleteRow((parseInt(i)+1) - rowsDeleted);
      sheet2.deleteRow((parseInt(i)+1) - rowsDeleted);
      rowsDeleted++; 
    } 
  } 
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...