Google Apps Script копирует лист перед созданием нового - PullRequest
0 голосов
/ 26 января 2020

Этот вопрос касается того же сценария, что и мой последний пост. Я добавил новую функцию, которая будет принимать выходные данные сценария и отправлять его обратно в исходную книгу в виде нового листа с датой, в которую он был изменен в качестве имени. Цель состоит в том, чтобы создать историю заказов. Этот сценарий и лист используется несколько раз в день. Вот код:

//Copy order to inventory
      newOrderSheet.clearContents();
      var newOrderSheetData = newOrderSheet.getRange(1,1,scoopsData.length, scoopsData[0].length);
          newOrderSheetData.setValues(scoopsData);
      var targetSheet = SpreadsheetApp.openById(thisSheetId);
          this.newOrderSheet.copyTo(targetSheet).setName(date);

Этот блок работает в виде коммутатора, с регистром для каждой рабочей книги, к которой мне нужно получить доступ. Код в блоке проходит через каждую страницу, перетаскивая информацию в рабочую книгу, где выполняется скрипт. Когда он проходит по листу, он получает всю информацию в диапазоне данных и копирует ее на лист в вызывающей книге. Затем он сортирует все с нулевым значением, сбрасывает это на лист заказа, затем переходит на следующий лист в целевом рабочем каталоге, копирует и сортирует на следующей странице. Он получает данные в порядке. Я получаю то, что ожидаю.

Однако, хотя верхняя строка этого блока очищает содержимое, когда я go смотрю на лист, который был скопирован обратно на лист источника данных, новый скопированный значения листа соответствуют значениям листа, на котором ранее был запущен скрипт. Для ясности, не тот, который был сгенерирован только что запущенным скриптом, а тот, который был сгенерирован ранее. Я рад предоставить образцы, если вам нужно. Спасибо сообществу StackOverflow!

1 Ответ

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

Решение было таким же простым, как перемещение "newOrderSheet.ClearContents ();" строка наверх каждого случая в выключателе.

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