Javascript Google脚本上的触发器问题
我有以下功能,当我手动运行它时,它工作得非常好Javascript Google脚本上的触发器问题,javascript,events,google-apps-script,triggers,Javascript,Events,Google Apps Script,Triggers,我有以下功能,当我手动运行它时,它工作得非常好 function LastUpdate() { var thisSS = SpreadsheetApp.getActiveSpreadsheet(); var sheet = thisSS.getSheetByName('Roster'); var data = Session.getActiveUser().getEmail(); var Edit = 0; var time = TimeStamp(); var Row
function LastUpdate() {
var thisSS = SpreadsheetApp.getActiveSpreadsheet();
var sheet = thisSS.getSheetByName('Roster');
var data = Session.getActiveUser().getEmail();
var Edit = 0;
var time = TimeStamp();
var Row;
Row = findInColumn("L", data);
Edit = checkEdits(Row);
if (Edit == 1)
{
sheet.getRange(Row,20).setValue(time);
}
}
我通过转到Resources->Triggers手动设置触发器,并选择上面的函数执行onEdit。基本上,每当编辑工作表中的单元格时,我都希望自动触发此函数执行。我不知道是什么问题
任何帮助都将不胜感激
编辑-我试图这样做,但这也不起作用
function onEdit(e)
{
LastUpdate ()
}
为什么不使用简单的onEdit触发器而不是已安装的触发器?因为您正在寻找由活动用户进行的最新编辑,这可能是一个更简单、更快和更稳定的解决方案
function onEdit(e){
var range = e.range; //edited range
range.getColumn();
range.setValue();
//etc
}
我可以调用我从onedit函数编写的函数吗?一个简单的触发器将无权调用
Session.getActiveUser().getEmail()代码>。嗨@Mogsdad,是的,你说得对!我试图显示活动用户数据,但该数据为空。但是,当我手动执行代码时,它似乎填充正确。如何修复此问题?在该用户手动运行脚本并同意Auth范围后,该用户将获得授权。即使使用简单触发器,该用户的会话(和电子邮件)现在也应该可用。我不知道是否有一个简单的解决方法来授权用户,而不需要用户先手动运行该功能。如果您希望对用户授权进行更多控制,并从其配置文件中获取数据,则可以编写授权脚本。请在此处阅读更多信息:这不是一个,因为它依赖于TimeStamp()
、findInColumn()
和checkEdits()
,您没有提供这些。将您的代码缩减到演示问题所需的最小示例,然后是问题所在,并解释如何调用触发器。有了这些,我们应该更容易帮助你。嗨@Mogsdad,很抱歉,但你是对的。问题在于var data=Session.getActiveUser().getEmail();线路。