我在我的一张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 :(得分:1)
该按钮将在用户权限下运行。如果它是匿名的,它将不会运行,如果它需要任何api权限(如阅读电子表格),因为没有用户。 对于非匿名用户,您需要添加一个菜单项,该菜单项将触发谷歌权限对话框(只需从中进行任何愚蠢的api调用)。在用户批准后,它将能够单击图像按钮