Скрипт архивирования архивирует 2 строки вместо одной - PullRequest
0 голосов
/ 07 февраля 2020

Я использую скрипт, который работает, распознавая, что я выбрал «Архив» в выпадающем списке, который находится в столбце 16, а затем вставляю эту строку в другую вкладку и удаляю ее из основного трекера.

У меня проблема в том, что иногда архивируются 2 строки вместо 1. Кажется, я не могу найти общий знаменатель в этом, и этот же скрипт без проблем работает с другими документами.

Кто-нибудь может увидеть ошибки, которые я пропускаю?

Электронная таблица в Google Sheets: здесь

Если это имеет значение, у меня есть два других, настроенных для поиска 'Leaver' и 'Отзыв приложения' в этой капле вниз колонка, а также. Все три являются отдельными сценариями с отдельными триггерами (при редактировании)

function onEdit() {
  var sheetNameToWatch = "Tracker";
  var columnNumberToWatch = 16; // column A = 1, B = 2, etc.
  var valueToWatch = "Archive"
  var sheetNameToMoveTheRowTo = "Archive";
  Logger.log(valueToWatch);

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();

   if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
    var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
    sheet.deleteRow(range.getRow());
  }
}

1 Ответ

0 голосов
/ 24 февраля 2020

Спасибо за предоставленный пример,

Я проверил ваш образец Google Sheets , и он не дал мне никаких ошибок.

Вот процедура:

  1. Нажмите D2
  2. Выберите лист архива
  3. Подождите, пока загрузится скрипт приложения

Это не сработало, если я Я делаю 10 кликов в секунду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...