Архивировать строку данных на другую вкладку, пока данные импортируются через importrange (Google Таблицы) - PullRequest
0 голосов
/ 27 мая 2020

Мой скрипт архивирует строку с «2019-2020» на вкладку «Полностью выставлен счет». Но со вкладки «2019-2020» строка не исчезает. Я думаю, это потому, что данные импортируются из другой электронной таблицы с помощью функции importrange. Я бы хотел, чтобы эта строка исчезла.

function onEdit(event) {
  // target sheet of move to named Paid
  // getColumn with check-boxes is currently set to column 2 or B
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  // Message box when archiving a project
  var editedCell = event.range.getSheet().getActiveCell();
    if((s.getName() == "2019-2020")&& r.getColumn() == 2 && r.getValue() == true) {   
    var response = Browser.msgBox('Make sure the project has been fully invoiced before archiving it. Are you sure to continue?', Browser.Buttons.YES_NO);
      Logger.log(response);
  if (response == "yes") {
    Logger.log('The user clicked "Yes."');
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Fully Invoiced");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  } else {
    Logger.log('The user clicked "No" or the dialog\'s close button.');
  }
  }

  // Unarchive a project from Fully Invoiced tab to 2019-2020 tab
  else if(s.getName() == "Fully Invoiced" && r.getColumn() == 2 && r.getValue() == false) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("2019-2020");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);   
}
} 

Есть у кого-нибудь идеи?

1 Ответ

0 голосов
/ 27 мая 2020

Тогда вам нужно удалить запись из исходного файла. IMPORTRANGE() всегда будет использовать диапазон, который вы запрашиваете в режиме только просмотра, т.е. вы не можете изменять значения. Если вы хотите изменить / удалить значения, вам необходимо сделать это в исходном файле.

  • Исходный файл = Файл, содержащий исходные данные
  • Рабочий файл = Файл который использует IMPORTRANGE для получения данных из исходного файла
...