У меня есть 2 книги на Google Диске, WB (A) - 10 разных листов и WB (B) - только один лист.
Я хочу получить некоторые данные из определенных ячеек из WB (B) изкаждый лист для хранения и обновления в WB (A), т. е. имя из ячейки (C6), идентификатор из ячейки (J10), Eva из ячейки (M13), а также одинаковые ячейки со всех листов 1,2,3,4, ...., 10.
Мне удалось обработать процесс поиска и обновления данных между WB (B) и WB (A), используя сценарий и триггеры, изменяющие время.Мне нужно назначить гиперссылку в WB (A), которая отображается в ячейке идентификатора для каждой строки (для каждой записи), или создать отдельный столбец, содержащий гиперссылки, связанные с каждой отдельной записью.цель состоит в том, чтобы щелкнуть по идентификатору с гиперссылкой, чтобы он автоматически перенес вас на соответствующий лист с этими значениями
Я знаю, как это сделать вручную, но я хочу, чтобы он генерировался автоматически и динамически черезскрипт, я обработаю триггер.
это мой код
function VerandacopyData() {
var Veranda_Workbook = SpreadsheetApp.openById("WB(B) id");
//var workbookB = SpreadsheetApp.getActiveSpreadsheet();
var Veranda_Sheets = Veranda_Workbook.getSheets();
//Destination link id and sheet name
var sheetA = SpreadsheetApp.openById('Log & Record ID').getSheetByName('Veranda Record');
sheetA.clear();
// This deletes all data in WB(A) before copying everything from WB(B), use this only if you don't want //all data to be duplicated all the time.
for(var index = 0; index < Veranda_Sheets.length; index++) {
//Sources definitions and reading data from all sheets
var lastRow = sheetA.getLastRow() + 1;
var Name_Source = Veranda_Sheets[index].getRange(6,3,1,1).getValues();
var ID_Source = Veranda_Sheets[index].getRange(9,10,1,1).getValues();
var Eva_Date_Source = Veranda_Sheets[index].getRange(6,13,1,1).getValues();
//Destination definition according to copied ranges criteria
//In big overall record sheet, we try lastRow+1 to not delete the header if it was buggy and/or delete //Line 13 ==> sheetA.clear();
var Name_Destination = sheetA.getRange(lastRow, 1, 1, 1);
var ID_Destination = sheetA.getRange(lastRow, 3, 1, 1)
var Eva_Destination = sheetA.getRange(lastRow, 4, 1, 1)
//Setting Values in destination in Evaluations Record sheet
Name_Destination.setValues(Name_Source);
ID_Scope_Destination.setValues(ID_Source);
Eva_Destination.setValues(Eva_Source);
}}
Я нашел решение, написав эти строки, когда цикл For начинается:
var Sheets_Name = new Array()
var Sheets_ID = new Array()
Sheets_Name.push( [ Veranda_Sheets[index].getName() ] )
Sheets_ID.push( [ Veranda_Sheets[index].getSheetId() ] )
sheetA.getRange(lastRow,1).setFormula('=hyperlink("https://docs.google.com/spreadsheets/d/ABCDEFEGGJKLSDKSDLSKDLKSDLKNXZDSKBD/edit#gid=' + Sheets_ID +'")');