首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我使用onEdit函数时,我的代码停止工作了吗?

当我使用onEdit函数时,我的代码停止工作了吗?
EN

Stack Overflow用户
提问于 2019-06-21 02:49:31
回答 1查看 90关注 0票数 0

我的代码使用myFunction()运行得很好,但是当我将其更改为onEdit,并使用e.range和列号恢复在特定列中的工作时,它停止了

function onEdit(e) {

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Timesheet & Feedback");

var cell = ss.getActiveCell();
var cellContent = cell.getValue();
var Manaf = CalendarApp.getCalendarById("manaf652@gmail.com");
var MustafaSmeer = CalendarApp.getCalendarById("8q65ner19m8uk8idmmkmrr2hvs@group.calendar.google.com");
var activeRow = ss.getActiveCell().getRow();
var data = ss.getRange("A" + activeRow + ":G" + activeRow).getValues();

var range = e.range;
var CellColumn = range.getColumn();

if (CellColumn == 2) {


    if (cellContent === "Mustafa Sameer") {
        MustafaSmeer.createEvent(data[0][0], data[0][2], data[0][2], {
            description: "First call " + data[0][0]
        });
        MustafaSmeer.createEvent(data[0][0], data[0][4], data[0][4], {
            description: "Second call " + data[0][0]
        });
        MustafaSmeer.createEvent(data[0][0], data[0][6], data[0][6], {
            description: "Third call " + data[0][0]
        })
    }
}
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-21 03:17:14

解释:

您的简单触发器没有访问CalendarApp的授权。它们以“有限的”authMode运行,而不是像手动运行脚本时那样“完全”运行。

这就是为什么你的脚本不能正常运行的原因,一旦你在你允许运行的情况下把它从手动/基于时间的触发器中拿出来,然后用一个简单的触发器来代替它,它就失去了成功运行所需的授权。关于每种触发器类型的权限,请参考下面的参考文档。

参考文献:

  1. Simple Triggers
  2. Event Objects

解决方案:

请改用可安装的onEdit()触发器。为此,请进入项目的触发器,添加一个新的触发器,并将其设置为在编辑电子表格时运行。然后你将被要求授权这个脚本,这将允许它按照你的期望运行,因为你已经明确地给了它你的授权。

注意::确保重命名你的函数,这样你就不会得到任何虚假的额外触发器。

参考资料:

  1. Installable Triggers
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56692181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档