0

我在我的一个谷歌表格中编写了一个脚本,当单击一个按钮时,它会从活动表格中复制数据并将其粘贴到另一个文件中。当登录到任何 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()

}
4

1 回答 1

1

该按钮将在用户权限下运行。如果它是匿名的,如果它需要任何 api 权限(比如读取电子表格),它就不会运行,因为没有用户。对于非匿名用户,您需要添加一个菜单项来触发 google 权限对话框(只需从中进行任何愚蠢的 api 调用)。用户批准后,将能够单击图像按钮

于 2013-08-23T22:15:31.223 回答