Как обновить данные листа рабочей книги в листах Google из других листов других книг? - PullRequest
0 голосов
/ 26 сентября 2019

В Google Drive у меня есть две разные книги / файлы, назовем их так: Рабочая книга (A) Рабочая книга (B)

Рабочая книга (B) включает 3 различных листа (Лист 1, Лист 2,Лист 3) с ячейками «A1», «B1», «C1», занятыми некоторыми числовыми значениями, датами или строковыми значениями.

Рабочая книга (A) имеет только 1 лист (Лист 1) и пустые столбцы «A», "B", "C".

Я хочу установить автоматическую и / или глобальную функцию / скрипт / гиперссылку между WB (B) и WB (A), в которой она передает значенияячейки "A1", "B1", "C1" WB (B) из листа 1, листа 2, листа 3 в WB (A) в столбцах "A", "B", "C" соответственно.каждый в своей новой строке в виде набора.

и всякий раз, когда кто-то добавляет новый лист в WB (B), т.е. лист 4 , правило будет применяться кон автоматически без ручной настройки.

Я уже пробовал использовать функцию importrange (), но ее нужно устанавливать каждый раз вручную !.Я знаю программирование, и иногда я пишу свои собственные коды, я пытался написать сценарий для него, но я не мог достичь того, чего хочу (недостаток опыта), и я остро нуждался в помощи, потому что это тяжелая задача на работе, и мыпытаетесь применить новую методологию работы, не могли бы вы помочь мне с кодом?

1 Ответ

0 голосов
/ 26 сентября 2019

Скопируйте и запустите эту функцию в сценарии, привязанном к книге B:

function copyData() {
  var workbookB = SpreadsheetApp.getActiveSpreadsheet();
  var sheetsB = workbookB.getSheets();
  var sheetA = SpreadsheetApp.openById('workbook_A_id').getSheetByName('Sheet1');
  sheetA.clear(); // This deletes all data in WBA before copying everything from WBB, use this only if you don't want all data to be duplicated all the time.
  for(var index = 0; index < sheetsB.length; index++) {
    var lastRow = sheetA.getLastRow() + 1;
    var valuesB = sheetsB[index].getRange(1, 1, 1, 3).getValues();
    var rangeA = sheetA.getRange(lastRow, 1, 1, 3);
    rangeA.setValues(valuesB);
  }
}
...