2017-09-26 4 views
0

Ich versuche, ungeschützte Bereiche in einem Google-Tabellenblatt einzurichten, ich habe mehrere Bereiche, um gleichzeitig Schutz aufzuheben. Daher möchte ich sie in einem Array speichern und dann alle gleichzeitig aufheben. Jedoch habe ich Probleme mit dem Array in der protection.setUnprotectedRanges-Anweisung (angezeigt durch den *** im folgenden Code).protection.setUnprotectedRanges - Google Apps Script

Kann ich ein Array verwenden, ohne jedes Element darin zu deklarieren?

Dank

function myFunction2() { 

var sheet = SpreadsheetApp.getActiveSheet(); 
var protection = sheet.protect().setDescription('Protect Sheet'); 
var unprotected = new Array(26); 

unprotected[0] = sheet.getRange(1,1,10,1); 
unprotected[1] = sheet.getRange(1,5,10,2); 
unprotected[2] = sheet.getRange(1,20,10,2); 

protection.setUnprotectedRanges([unprotected[]]); // *** How to I use the whole array with setUnprotectedRanges, without declaring every element within the array in the statement (as below) 
//protection.setUnprotectedRanges([unprotected[0],unprotected[1]]); // don't want to use this method 
// Ensure the current user is an editor before removing others. Otherwise, if the user's edit 
// permission comes from a group, the script will throw an exception upon removing the group. 
var me = Session.getEffectiveUser(); 
protection.addEditor(me); 
protection.removeEditors(protection.getEditors()); 
if (protection.canDomainEdit()) { 
    protection.setDomainEdit(false); 
} 
} 

Antwort

0

Pass die ganze array durch seinen Namen unprotected in setUnprotectedRanges()

function myFunction2() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var protection = sheet.protect().setDescription('Protect Sheet'); 
    var unprotected = []; 

    unprotected[0] = sheet.getRange(1,1,10,1); 
    unprotected[1] = sheet.getRange(1,5,10,2); 
    unprotected[2] = sheet.getRange(1,20,10,2); 

    protection.setUnprotectedRanges(unprotected); 
    ... 
} 
+0

Perfect, funktioniert super! Vielen Dank –