2

Voici mon script, mais je ne peux pas le faire fonctionner pour une raison étrange ?? !!! Me rend fou.Feuille de calcul Google - Erreur lors de la suppression de la protection de la plage

function removeThenSetProtection() { 
    // Remove all range protections in the spreadsheet that the user has 
    //permission to edit. 
    var ss = SpreadsheetApp.getActive(); 
    var protections = ss.getProtections(SpreadsheetApp.ProtectionType.SHEET); 

    for (var i = 0; i < protections.length; i++) { 
    var protection = protections[i]; 
    if (protection.canEdit()) { 
     protection.remove(); 
    } 
    } 
} 
+1

Le code a fonctionné pour moi. J'ai placé une gamme protégée manuellement, ai couru votre code, et il a enlevé la protection. Nous devons avoir plus d'informations. Qui exécute le script? Un utilisateur autre que vous? Si oui, quelles sont leurs autorisations? Utilisez également les instructions 'Logger.log ('Nom de la variable:' + variableName)', puis VIEW the LOGS. Ou parcourez votre code ligne par ligne avec le débogueur. [Dépannage - Points d'arrêt] (https://developers.google.com/apps-script/troubleshooting#using_the_debugger_and_breakpoints) –

+1

La feuille de calcul est-elle réellement ouverte lorsque le code est exécuté? La feuille sur laquelle vous voulez agir, la feuille active? –

Répondre

1

Change:

var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); 

Pour:

var protections = ss.getProtections(SpreadsheetApp.ProtectionType.SHEET); 

De cette façon, vous serez assuré que vous obtenez une référence à tout ce qui est protégé, et de futurs conflits n » T arrive.