Actually, this is not a difficult script to write. I outline it below as a standalone script. I just desk checked this, and you will have to revise it in any case, but here goes: B careful with the array vs cell indexing. Kick indexes up by 1 if you have a header row.
function copySheetData() {
// First, execute open of "top" spreadsheet
var ssTop = SpreadsheetApp.openByUrl(URL of the sheet with links in the Z column)'
// Get the data from the spreadsheet into an array:
var topArray = ss.getRange(1,1, ssTop.getLastRow(),ssTop.getLastColumn()).getValues();
// Set up a loop through topArray
for(i = 0; i < topArray.length; i++) {
- //Inside the loop, open the spreadsheet indicated in column Z
var ssFromZ = SpreadsheetApp.openByUrl(topArray(i,25)); // column Z is at index position 25.
// Get values from top spreadsheet, data from row i + 1, columns L to X.
// For arrays, index starts at 0; for cell reference, index starts at 1
var dataFromTop = ssTop.getRange(i + 1,11,1,12).getValues();
// Skip empty row
if dataFromTop(i,0) == '' {
continue;
}
// Then load to subordinate spreadsheet. data goes to row 1 of subordinate sheet, columns A to N
ssFromZ.getRange(1,1,1,12).setValues(dataFromTop);
}
}