触发onEdit()以更新Google表格中相同的单元格值

时间:2016-05-17 21:55:03

标签: google-apps-script google-sheets

当我向单元格添加一个值时,它应该被转换(就地)到格式化的值(在我的情况下是一个超链接)。这不应该触发另一个onEdit()。

所以说我输入“foo”文本会自动变为http://bar.com/zee/foo

我们如何使用onEdit执行此操作?有没有更好的方法来实现相同的结果?

1 个答案:

答案 0 :(得分:1)

修改单元格内容的脚本不会触发“编辑”事件。因此,您可以实现目标,而无需担心创建无限循环:使用此单元格中的新值修改活动单元格。

function onEdit(e) {
  if (e.value.oldValue === undefined) {
    e.range.setValue('http://example.com/' + e.value);
  }
}

条件语句的原因是当编辑等于清除单元格时避免将内容放入单元格中。这样的编辑被检测如下:当删除单元格内容时,e.value成为对象,其中属性oldValue表示单元格中的旧值。