【问题标题】:Make TODAY formula stop when checkbox is clicked单击复选框时使 TODAY 公式停止
【发布时间】:2019-08-02 11:49:20
【问题描述】:

我正在设置一个 Google 表格,其中包含要为某个请求填写的几列。因此,我在最后添加了一个复选框,以确认请求已完成。我的想法是在单击“确认”复选框后立即自动填充一个名为“请求日期”的自动列,其中包含当前日期。但是,一旦要每天更改日期,就不能使用TODAY() 公式。有什么解决办法吗?

【问题讨论】:

    标签: date google-apps-script google-sheets google-sheets-formula


    【解决方案1】:

    很遗憾,没有。没有脚本,您无法以任何方式按需停止TODAY。但是如果选中某些复选框,您可以有一个脚本来打印日期。

    function onEdit(e) {
      var aCell = e.source.getActiveCell(), col = aCell.getColumn(); 
      if(col == 5) { //number of column where you have a checkbox
        var adjacentCell = aCell.offset(0,1);
        var newDate = Utilities.formatDate(new Date(), 
          "GMT+1", "dd/MM/yyyy");
        adjacentCell.setValue(newDate);
      }}
    

    如果选中列 E 中的复选框,则会在列 F 中打印日期


    或者可能是这样的:

    function onEdit(e) {
      var activeSheet = e.source.getActiveSheet();
      if (activeSheet.getName() == "Sheet1") {                   // SHEET NAME
        var aCell = e.source.getActiveCell(), col = aCell.getColumn();
        if (col == 12) {                                         // COLUMN WITH CHECKBOXES
          var dateCell = aCell.offset(0,1);                      // OFFSET ROWS, COLUMNS
          if (aCell.getValue() === true) {                       // VALUE OF CHECKED CHECKBOX
            var newDate = new Date();
            dateCell.setValue(newDate);
          } else {
            dateCell.setValue("");
          }}}}
    

    【讨论】:

    • 如果对 E 列进行 任何 更改,这将运行 - 您可以合并对 checkbox.isChecked() 的检查,以确保它仅在选中复选框时设置日期。
    • 我不确定e 是否返回一个复选框选项。使用e.value == "TRUE"会更方便吗?
    • @ADW 您可以从e.range 获取行/列并使用这些获取复选框。如果复选框设置为 TRUE/FALSE,e.value == "TRUE" 将起作用,但您可以自定义此设置,例如,如果将其设置为 Yes/No,则它可能会失败。
    • 尝试通过 Google Apps 脚本运行(我的谷歌表格中水平菜单中的“工具”和“ 脚本编辑器”,但是当我尝试运行脚本时,它给出了以下错误: “TypeError:无法从未定义中读取属性“源”。(第 2 行,文件“代码”)”
    • 嗨@player0,非常感谢您的努力,但不幸的是,第二个选项根本不起作用。我猜第一个脚本更接近它至少可以工作,尽管它的逻辑是问题,因为它应该打印一个只有勾选复选框(true)而不是空复选框的日期。我想我最终会转向更简单的东西,比如“如果”单元格 X ===“完成”,然后打印今天的日期。
    猜你喜欢
    • 2010-09-16
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多