Автоматически копировать данные между Google Sheets - PullRequest
0 голосов
/ 20 марта 2019

Мне нужна помощь в автоматизации копирования данных между листами Google.

У меня есть лист под названием «Текущие данные». Этот лист содержит данные в столбцах A-F (с заголовками). Столбец А содержит имена пользователей. Столбцы B-F будут иметь формулы, которые извлекают данные из Instagram.com, используя

= VALUE (REGEXEXTRACT (ImportXml (

Я получил формулы с этого сайта: https://www.benlcollins.com/spreadsheets/import-social-media-statistics/

Существует еще один лист, который называется «Исторические данные». Этот лист содержит те же столбцы, что и «Текущие данные» (A-F, с заголовками). Этот лист содержит все данные из таблицы «Текущие данные», вставляемые ежедневно.

Мой текущий процесс:

  • Открыть лист Перейдите к листу «Текущие данные», скопируйте значения из A2-FXXX
  • Перейдите к листу «Исторические данные», выделите следующую пустую строку и вставьте данные.

Я хочу автоматизировать это и делать это ежедневно.

Я использую этот скрипт для автоматического обновления моей функции IMPORTXML. Это прекрасно работает. Периодически обновлять функцию электронных таблиц IMPORTXML ()

  • Я копирую значения из таблицы текущих данных в историческую Лист данных, используя этот скрипт. Скопируйте и вставьте с помощью скрипта электронной таблицы Google .
    • Этот скрипт также работает, но он только копирует первую строку данных в место назначения. Сценарий также стирает данные из таблицы текущих данных.
    • Я удалил "source.clear ();" из кода, но данные все еще стираются.

Я также пытался использовать этот скрипт, так как некоторые люди упоминали, что пользователям необходимо использовать appendRow вместо copyTo. Все еще не повезло с этим кодом:

function moveValuesOnlyy() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getRange("CurrentData!A2:F100");
  var destSheet = ss.getSheetByName("HistoricalData");
  destSheet.appendRow(source.getValues());
 }

В конце я ищу сценарий для:

  • Найдите и скопируйте диапазон данных из таблицы «Текущие данные», начиная с A2.
  • Найти следующую пустую строку на листе "Исторические данные".
  • Вставить как значения.

Любая помощь будет принята с благодарностью, спасибо!

1 Ответ

1 голос
/ 21 марта 2019

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

function copyPaste() {
  var ss=SpreadsheetApp.getActive();
  var srcsh=ss.getSheetByName('CurrentData');
  var dessh=ss.getSheetByName('HistoricalData');
  var srcrg=srcsh.getRange('A2:F100');
  var data=srcrg.getValues();
  var desrg=dessh.getRange(dessh.getLastRow() + 1,1,99,6);
  desrg.setValues(data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...