Solution:
On your main Google spreadsheet file, you can create a bound script and try this tweaked script below:
This script was based from Protect spreadsheet then unprotect specific cells and ranges with script & article of addEditors() method.
Script:
function main() { //Main function to run
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
addEditors();
for(var x=0; x<sheets.length; x++){
unlockCertainRanges(sheets[x]);
}
}
function addEditors(){ //Function to add editors
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var emails = [
'test1@example.com',
'test2@example.com',
'test3@example.com'
];
sheet.addEditors(emails);
}
function unlockCertainRanges(currentSheet){ //Function to unlock certain ranges on your sheets
var sheet = currentSheet;
// Remove all range protections in the spreadsheet
var protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
var protection = protections[i];
protection.remove();
}
var protection = sheet.protect();
//restrict editors to owner
protection.getRange().getA1Notation();
var eds = protection.getEditors();
protection.removeEditors(eds);
//set unprotected ranges
var ranges = protection.getUnprotectedRanges();
var data = ["B6:Q50"]; // ADD YOUR RANGES HERE TO BE EDITABLE
data.forEach(res => { //LOOPS INTO EVERY ARRAY CONTAINING SPECIFIC RANGES
ranges.push(sheet.getRange(res));
protection.setUnprotectedRanges(ranges); //REMOVES THE PROTECTION ON THE RANGE
});
}
Sample Result:
After running the main
function, the emails added on addEditors
function are automatically added as editors of the file & they'll be abe to edit range B6:Q50
and the rest of the cells will be protected (only the owner of the spreadsheet file will be able to edit):

Sample Images:

Image 1: A user is not allowed to edit cell A1
(outside of B6:Q50
range on all sheets)

Image 2: User is allowed to edit cell B6
(within B6:Q50
range on all sheets)