首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果编辑的单元格为空白,如何清空相邻单元格?

如果编辑的单元格为空白,如何清空相邻单元格?
EN

Stack Overflow用户
提问于 2016-04-26 15:59:49
回答 1查看 671关注 0票数 1

当一个单元格被编辑时,我的应用程序脚本代码基于watchCols标记相邻的单元格。

如果用户删除一个值,我需要做的是删除时间戳。例如,如果他们完成了一个任务列表中的一个,就会在任何一行的第2列中放置一个X,但是如果他们删除了X--这意味着他们没有完成任务,那么它旁边就不应该有时间戳。

代码语言:javascript
复制
function onEdit(e) 
{
    var s = e.source.getActiveSheet(),
    watchCols = [2, 5, 8, 11, 14, 17],
    offsetCol = [1, 1, 1, 1, 1, 1],
    ind = watchCols.indexOf(e.range.columnStart);
    if (s.getName() !== "Sheet1" || ind === -1) return;
    e.range.offset(0, offsetCol[ind])
    .setValue(!e.value ? null : Utilities.formatDate(new Date(), "GMT-4", "YYYY-MMM-dd hh:m:s a"))
}

这是我最后一次似乎行不通的尝试:

代码语言:javascript
复制
    if(ISBLANK(e.range.columnStart) && ISBLANK(e.range.rowStart)) {
    e.range.offset(0, offsetCol[ind]).setValue("");
    } else {
    e.range.offset(0, offsetCol[ind]).setValue(!e.value ? null : Utilities.formatDate(new Date(), "GMT-4", "YYYY-MMM-dd hh:m:s a"))
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-26 17:48:52

这是编辑事件对象的一种无文档化的行为,我认为这是一个bug。对于可安装的编辑触发器和简单的onEdit触发器,对于用户清除单元格,它的行为有所不同。

  1. 可安装触发器:e.oldValue具有旧值,e.value未定义(事件对象没有value属性)。
  2. 简单触发器:e.oldValue有旧值,e.value 保存对象 {"oldValue":"whatever it was"}

这就是为什么在两种情况下,带有!e.value的条件语句的行为不同:未定义是falsy,但对象是真实的。

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

https://stackoverflow.com/questions/36870089

复制
相关文章

相似问题

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