我有一个Google表格,我在其中设置了一个onEdit触发器,在编辑单元格时会弹出一个ui.alert。然后,我想根据用户是选择确定还是取消来执行操作。当我使用工作表作为创建触发器和脚本的用户时,这一切都正常。如果我将表单(具有编辑权限)共享给其他人,当他们编辑单元格时脚本会运行,但是当他们单击“确定”或“取消”时我无法获得响应。脚本停止了。执行记录中没有显示任何内容,即使我输入记录信息也没有记录任何内容。
我已经整理了一个非常简单的代码示例,该示例展示了如果第一个ui.alert单击“确定”就会出现第二个ui.alert的问题。
function myFunction() {
var ui = SpreadsheetApp.getUi()
var response = ui.alert('Test', 'Test', ui.ButtonSet.OK_CANCEL);
if (response.OK) {
ui.alert('OK');
}
}
Screenshot of trigger set up is here:
包含脚本的测试表的链接在这里:
https://docs.google.com/spreadsheets/d/1J16lpg9G1O8hQOxB-J1R4Oy0nsrxIkgWHBfaSl6bpVs/edit#gid=0
你应该首先编辑一个单元格ui.alert,你单击OK然后再出现第二个ui.alert。我试图在你尝试时发生的是第二个ui.alert不会发生。
有什么建议吗?这是权限吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
试试这样:
function onEdit(e) {
//FIXED FOR OTHER USERS IF THE FUNCTION DOESN'T NEED OTHER PERMISSIONS (simple trigger onEdit)
var ui = SpreadsheetApp.getUi()
var response = ui.alert('Test', 'Test', ui.ButtonSet.OK_CANCEL);
if (response == ui.Button.OK) {
ui.alert('OK');
} else {
ui.alert('NOT OK')
}
}
--------评论后编辑-----
Unity3D
答案 2 :(得分:0)
我也遇到了与BOUND SCRIPT相同的问题。
我作为工作表的创建者/所有者没有任何问题。
当我与同一实例中的另一个用户共享doc时,初始Ui.Alert显示但是他们的响应永远不会从Alert返回,var结果没有设置,实际上如果我在设置结果后直接添加一行它永远不会到那儿?
var result = ui.alert(
'Approve leave for ' + ApplicantName +' ?',
'An approval email will now be sent to ' + EmailAddress.toLowerCase() + ' do you want to continue ?',
ui.ButtonSet.YES_NO);
Logger.log('Leave approve popup selection = ' + result.toString());//this is not executed
我甚至尝试在try catch块中包装它并且什么都没得到!
<强>胡迭-安特萨纳强>
&#34; ...哦,这来自权限和应用程序权限,用户必须 允许该应用程序为其帐户运行,即使其他用户拥有该帐户 编辑工作表的权利。
你能否进一步详细说明这与问题有关?
由于