首页 > 解决方案 > 勾选/未勾选复选框以在 Google 表格的不同单元格中提示操作

问题描述

有没有人推荐谷歌表格中的脚本,所以当勾选复选框时,当前日期会打印在不同的单元格中,好吗?请务必注意,某些脚本使用空白/勾选复选框。但是,我需要在勾选复选框时打印日期'ONLY',拜托。

标签: google-apps-scriptgoogle-sheets

解决方案


您的IF语句不测试复选框是否被勾选。

可以为复选框设置值,但默认值为“TRUE”(选中)和“FALSE”(未选中)。您可以简单地通过在单元格中输入+A1以在单元格 A1 中显示复选框的值来确定这一点。

以下代码在两个方面与您的代码不同。

  • var val = e.value;
    这会将已编辑单元格的值分配给一个变量。
  • if(col == 1 && val == "TRUE") {
    这将扩展IF语句以测试编辑的单元格是否在 A 列中以及编辑的单元格的值是否为 TRUE(选中复选框)。

function onEdit(e) {
  var aCell = e.source.getActiveCell(), col = aCell.getColumn(); 
  var val = e.value;
  if(col == 1 && val == "TRUE") {
    var adjacentCell = aCell.offset(0,1);
    var newDate = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy");
    adjacentCell.setValue(newDate);
  }
}

在切线上,某些事件对象由“e”属性返回。您只需插入Logger.log(JSON.stringify(e));代码即可显示这些内容。在几乎所有情况下,使用事件对象来获取变量都是可能的(并且可以说是更可取的)。

例如,在您的代码上下文中:

  • var erange = e.range; 返回编辑的范围。
  • var eCol = erange.columnStart;返回已编辑的列

推荐阅读