Google Sheet 脚本未完全执行

Google Sheet Script not fully executing

我正在使用 Google 表单来触发此脚本。
当我 运行 带有播放按钮的脚本时,它运行完美。
当我让 onsubmit 触发 运行 它时,复选框填充正常但 setValue 日期没有。
我也试过使用 setFormula 但我得到了相同的结果。

function AddCheckBox_toSchoolLunchForm(F) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1")
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
  var range = sheet.getRange(sheet.getLastRow(), 8);
  range.clearContent();
  range.setDataValidation(rule);
  var FormulaCell = sheet.getRange(sheet.getLastRow(), 10);
  FormulaCell.setFormula("=DATEVALUE(A" + (sheet.getLastRow()) + ")");
}

最终目标是在每次提交表单时,让 J 列填充 A 列中的镜头格式化日期。
我需要这种格式来 运行 另一个 sheet.

上的 countIfs

另一种选择是以某种方式将格式标记嵌入到此 CountIfs 命令中,以便它们匹配。

=COUNTIFS('Form Responses 1'!J:J,A2,'Form Responses 1'!D:D,B2)

更新的答案

如果您遇到问题 运行 触发器上的函数在没有触发器的情况下按预期工作,请检查以下内容:

  • 对于大量文件/表单数据,它们可能会延迟 sheet 使用新表单数据填充。

    • 为避免冲突,在检索 sheet.getLastRow() 或访问 sheet.[=16 中的数据之前,给传播sheet 一些时间来填充新行=]

    • 你可以很容易地点例如Utilities.sleep().

  • 检查您的触发器是否已正确安装。为此检查

    • 触发器类型正确
    • 触发器绑定到正确的函数
    • 通过在重命名函数时创建新触发器来避免冲突。
  • 确认不是触发器的问题restrictions

  • 这是使用简单触发器时的常见错误来源。

  • 检查授权触发器 运行 的帐户是否有权编辑 sheet /范围。这对于检查触发器所有者何时与手动运行脚本的人不同是很重要的。

  • 请注意,对于setFormula(),不需要将=合并到公式

  • 请注意,DATEVALUE() 仅当单元格格式正确为日期

    时才会 return 预期结果