, , . , , . gid, , , , - ... , . gid , gid, .
Here is part of some code that I use to take a line from an aggregated sheet when editing and clicking on an additional sheet as part of two-way synchronization. If you only have gid and key, you can skip the steps I showed and just refer to these values. It seems to work very fast, this is a more complex script, and then works from a book with broken sheets, but both scripts take almost exactly 2 seconds to click, which is acceptable to me.
function Stest()
{
SpreadsheetApp.flush();
var sheet = SpreadsheetApp.getActiveSheet();
var r = sheet.getActiveRange();
var lastColumnRow = sheet.getLastColumn();
var activeRow = r.getRow();
var dataRange = sheet.getRange(activeRow,1,1,lastColumnRow);
var data = dataRange.getValues();
var sskeytemp = data[0][10].split("=")[1];
var sskey = sskeytemp.split("#")[0];
var ssid = data[0][10].split("gid=")[1];
var wrkbk = SpreadsheetApp.openById(sskey).getSheets();
for (var i = 0 ; i < wrkbk.length ; i++ ) {
if( ssid == wrkbk[i].getSheetId() ){
var ssname= wrkbk[i].getName();
var ss = SpreadsheetApp.openById(sskey).getSheetByName(ssname);
var sslastColumn = ss.getLastColumn();
var sslastRow = ss.getLastRow();
var dataRange = ss.getRange(1,1,sslastRow,sslastColumn);
var data2 = dataRange.getValues();
source
share