2013-08-16 61 views
0

我已經在我的一個Google表單中編寫了一個腳本,當單擊一個按鈕時,它將從活動工作表複製數據並將其粘貼到另一個文件中。當登錄到任何谷歌帳戶腳本運行良好,但當匿名用戶單擊按鈕沒有任何反應。根據有關容器綁定腳本的信息,它們的權限鏡像容器的權限。我已確保該容器與匿名用戶共享以進行編輯,但腳本仍然不會執行,除非登錄。容器綁定的Google腳本即使在共享容器後也不會執行

我在做什麼錯?下面的代碼。

function DataCapture() { 


    // Set Sheets 

    var source_sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var target = SpreadsheetApp.openById("0AtYhRMASIGlFdGVQWFprMEpOOFRrUGYxTmNGd0dZLVE"); 
    var target_sheet = target.getSheetByName('Data'); 

    // Get target last row 
    var last_row = target_sheet.getLastRow(); 

    // Set Ranges 
    var source_range = source_sheet.getRange("A2:P2"); 
    var target_range = target_sheet.getRange("A"+(last_row+1)+":P"+(last_row+1)); 
    var info_range = source_sheet.getRange("D7:E7"); 
    var dollar_range = source_sheet.getRange("B7:B8"); 
    var approver_range = source_sheet.getRange("D7:F7"); 

    // Fetch values 
    var values = source_range.getValues(); 

    // Save to spreadsheet 
    target_range.setValues(values); 

    // Clear the fields for the next entry 
    source_range.clearContent() 
    info_range.clearContent() 
    dollar_range.clearContent() 
    approver_range.clearContent() 

} 
+0

發佈代碼通常是一個好主意,或者更好的辦法是隻發佈一小段代碼給你帶來困難。 – user1618143

+0

好點!謝謝,完成! – user2690749

+0

通過「按下按鈕」,是否意味着電子表格中的圖形或圖像帶有指向腳本功能的鏈接?如果是這樣,你是否試圖專注於確保該按鈕適用於匿名用戶?即用一個僅僅執行Browser.msgBox()的裸骨頭腳本。 //你的_script_(不僅僅是這個函數)是否包含任何對需要用戶認證的服務的調用,比如GmailApp?我注意到在某些情況下會導致問題。 – Mogsdad

回答

1

該按鈕將在用戶權限下運行。如果它是匿名的,如果它需要任何api權限(比如閱讀電子表格),它就不會運行,因爲沒有用戶。 對於非匿名用戶,您需要添加一個菜單項,以觸發Google權限對話框(只需執行任何愚蠢的api調用)。用戶批准後可以點擊圖片按鈕

相關問題