2013-04-08 67 views
1

我想爲谷歌電子表格編寫一個自定義函數,但我左右運行權限錯誤。爲了讓事情開始,我將它輸入到左上角的單元格中:"=testFunction()"。在功能方面,我想強調,選擇基於用戶一排,和整個以下問題上來:谷歌電子表格自定義功能權限

  1. 我沒有權限調用Session.getActiveUser()方法,所以我不能做任何事情基於用戶訪問文檔。此外,getUrl函數不會返回實際的url,所以在末尾加上「#Jeff」這樣的字符將不起作用。注意:我最終解決了這個問題,因爲讓我驚訝的是,Spreadsheet.getViewers函數起作用。
  2. 我沒有權限運行Spreadsheet.setActiveSelection()函數,所以我無法選擇一行。
  3. 如果我從單元格A運行函數,我沒有權限更改單元格B的背景。這意味着我需要將我的破折高亮函數放在每個想要更改顏色的單元格中。

查找如何做某件事,測試它,並觀察權限錯誤彈出四次中的三次,這令人沮喪。考慮到我是該文檔的所有者,是否有任何方法可以更改我有權執行的操作?如果沒有,是否有任何文件可以運行我可以運行的功能?

+0

相關:http://stackoverflow.com/questions/40009418/how-do-i-get-permission-to-delete-rows-in-google-sheets – 2016-10-13 03:31:59

回答

1

自定義功能都不允許訪問用戶特定的服務

0

我已經注意到從一個細胞不能做的auth-所需的方法的自定義功能,但你可以得到你的腳本,如果你運行讓腳本被觸發。

示例:我編寫了與我的工作表關聯的腳本函數。

function getTheUser() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    sheet.getRange('a1').setValue(Session.getActiveUser()); 
} 

,如果我把這個細胞

=getTheUser() 

細胞被標有「錯誤:您沒有權限撥打getActiveUser(第9行,文件‘準則’)」

但是,如果我轉到項目的腳本併爲函數創建觸發器,則只要觸發條件滿足,函數就會運行OK。

我的計劃是使用觸發器來獲取auth所需的函數來運行。