【问题标题】:Getting the value of a cell the user didn't exit获取用户未退出的单元格的值
【发布时间】:2022-11-09 04:21:14
【问题描述】:

我在 Google 表格中创建了一个表格,基本上是用户填写的表格。他们填写空白,然后按下按钮以根据数据运行脚本。但是,无论我如何警告他们,他们在单击按钮之前都不会退出最后一个字段,并且脚本会感知到最后一个字段为空。我曾尝试让脚本激活屏幕上的另一个字段,但在执行此操作之前它不会密封值。是否有另一个命令可以强制将值写入字段?

【问题讨论】:

    标签: google-apps-script google-sheets user-controls


    【解决方案1】:

    作为Troy123 提到的附加选项,您可以尝试以下脚本来检测空白值并在运行用于提交表单的代码之前显示警报(如果有)。

    脚本:

    function alertMessage() {
      let ss = SpreadsheetApp.getActive().getSheetByName("Sheet2");
      let lR = ss.getLastRow();
      let lRValues = ss.getRange(lR, 1, 1, 3).getValues();
      let x = false;
      for(let i=0; i<3; i++) // Used 3 because I am just saving 3 values from code line 4
      {
        console.log(lRValues[0][i]);
        if (lRValues[0][i]=="")
        {
          x = true;
        }
      }
      if(x == true)
      {
        SpreadsheetApp.getUi().alert("Make sure there are no blank fields");
      }
      else
      {
        /*
        Insert the form submission function or script here
        */
      }
    }
    

    例子:

    参考:

    【讨论】:

      【解决方案2】:

      使用表单末尾的复选框并让他们单击它。此复选框什么都不做,但它会将焦点从最后一个字段更改为复选框。

      【讨论】:

      • 好主意!该复选框还可用于通过 onEdit 触发器执行表单提交。虽然我不确定它是否会导致同样的问题仍然存在。
      • 我认为您最好的解决方案是不要将 Google 表格用于表单。改用对话框。我喜欢无模式对话框,因为它允许用户继续与电子表格进行交互。这是[一个例子](creating markdown tables)
      • 非常感谢。当您使用无模式对话框时,它是否消除了 Google 的 6 分钟限制在用户未能单击 OK 按钮时被吃光的问题?
      猜你喜欢
      • 1970-01-01
      • 2015-02-24
      • 2012-01-02
      • 1970-01-01
      • 2022-06-17
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多