Вы можете использовать класс SpreadsheetApp
, чтобы открыть несколько листов. Посмотрите openById
или openByUrl
, либо он должен работать. Затем вы можете создать два объекта электронных таблиц, получить значения столбцов A и B каждого из них, выполнить итерацию для сравнения и скопировать значение столбца B, если совпадают значения столбца A.
Следует отметить, что вы должны использовать getValue
и setValue
, а не copyTo
, так как я не думаю, что последний работает через отдельные электронные таблицы.
Вы должны закончить с чем-то вроде этого:
// gets spreadsheet A and the range of data
ssA = SpreadsheetApp.openById('ID of spreadsheet A');
sheetA = ssA.getSheetByName('name of sheet in ssA');
dataA = sheetA.getRange('A:B').getValues();
// gets spreadsheet B and the range of data
ssB = SpreadsheetApp.openById('ID of spreadsheet B');
sheetB = ssB.getSheetByName('name of sheet in ssB');
dataB = sheetB.getRange('A:B').getValues();
// loops through column A of spreadsheet A & B and compares
for(var i = 0; i > sheetA.getLastRow(); i++){
// checks to see if ith value in 2nd row is the same
if dataA[1][i] == dataB[1][i]{
var value = sheetA.getRange(i+1, 2).getValue();
// used i+1 because index of range is 1, while index of the data array is 0
sheetB.getRange(i+1, 2).setValue(value);
} // end if
} // end i
Там же подобный вопрос ответил here.
Пожалуйста, укажите только те теги, которые «действительно связаны» с вопросом, а также добавьте краткое описание вашего поиска/исследований, сделанных до сих пор. Для получения дополнительной информации проверьте [ask]. –
Вам не нужен код, на мой взгляд, мог бы сделать то же самое с функцией importRange и vlookup в googleSheets. –