首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当另一个单元格已被清除时,如何清除特定的单元格?

当另一个单元格已被清除时,如何清除特定的单元格?
EN

Stack Overflow用户
提问于 2014-06-26 19:23:09
回答 1查看 1.6K关注 0票数 0

我有一个用于Google Docs电子表格的脚本,在该脚本中,当填充特定列中的任何单元格时,它会自动在该行的另一列中放置时间戳:

代码语言:javascript
运行
复制
function onEdit() {
 var s = SpreadsheetApp.getActiveSheet();
 if( s.getName() == "Sheet1" ) { //checks that we're on the correct sheet
   var r = s.getActiveCell();
   if( r.getColumn() == 9 ) { //checks the column
     var nextCell = r.offset(0, 3);
     if( nextCell.getValue() === '' ) //is empty?
       var time = new Date();
     time = Utilities.formatDate(time, "Canada/Eastern", "M/dd/Y, h:mm:ss");
       nextCell.setValue(time);
   };
 };
}

剧本写得很好。但是,如果清除了该单元格,我希望脚本删除该时间戳。

或者,我可以提出一些不同的问题:当行中的另一个特定单元格已被清除时,如何清除特定的单元格?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-26 19:50:19

代码几乎是一样的,我对其进行了一些简化,以便更容易地理解它在做什么。

编辑:

更好的代码,以防止问题时,只是修改一个单元格在第9。

我使用了onEdit触发器中的参数(在本例中称为e),有关详细信息,请参阅文档

代码语言:javascript
运行
复制
function onEdit(e) {
  var s = SpreadsheetApp.getActiveSheet();
  Logger.log(JSON.stringify(e)+'  ------------------> value = '+e.value);
  var r = e.range;
  var nextCell = r.offset(0, 3);
  if( s.getName() == "Sheet1" && r.getColumn() == 9 ){ //checks that we're on the correct sheet & column
    if( nextCell.getValue() === '' && e.value !=null){ //is empty?
      var time = new Date();
      time = Utilities.formatDate(time, "Canada/Eastern", "M/dd/Y, h:mm:ss");
      nextCell.setValue(time);
    }else{
      if(e.value==null){ nextCell.setValue('')};  
    }
  }
}

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

https://stackoverflow.com/questions/24438559

复制
相关文章

相似问题

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