我是Apps Script的新手,並且一直在放慢自學。我搜索了Stack Over Flow,發現了類似的問題,並嘗試使用找到的信息解決問題,但迄今爲止沒有成功。希望有人在這裏可以給新手一些指導。Google表格 - 允許用戶在受保護的範圍上運行腳本
我有我與其他用戶共享一個電子表格。有幾個範圍內的公式,我試圖保護。我寫了一個腳本,可以在受保護的範圍內更改論壇。它在我的帳戶下運行良好,但共享用戶無法運行該腳本,因爲他們「沒有權限」。
我曾嘗試寫一些代碼,試圖給予臨時的編輯權限保護的範圍。我的想法是有三個不同的功能。第一個功能刪除保護。第二個功能執行對現在不受保護範圍的更改。第三個函數然後再次保護範圍。下面的代碼完全適用於我的帳戶。但是因爲它會導致警告說,一個共享的用戶登錄時「您沒有權限執行。」
有人可以告訴我在哪裏,我錯了,並指出我在正確的方向?
function myFunction() {
//add protections back
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Spray Template');
var range = sheet.getRange('B15:E15');
var range2 = sheet.getRange('G15:H15');
var range3 = sheet.getRange('D16:E16');
var ranges = [range,range2,range3];
for (var j = 0; j<3; j++){
ranges[j].protect().removeEditor('[email protected]');
}
}
function myFunction2(){
//remove protections
var ss = SpreadsheetApp.getActive();
var ss2= ss.getSheetByName('Spray Template');
var protections = ss2.getProtections(SpreadsheetApp.ProtectionType.RANGE);
f
or (var i = 0; i < protections.length; i++) {
var protection = protections[i];
protection.addEditor('[email protected]');
SpreadsheetApp.flush();
protection.remove();
}
}
function test() {
myFunction2();
functionThatChangesRange();
myFunction();
}