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 预期结果
我正在使用 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('Form Responses 1'!J:J,A2,'Form Responses 1'!D:D,B2)
更新的答案
如果您遇到问题 运行 触发器上的函数在没有触发器的情况下按预期工作,请检查以下内容:
对于大量文件/表单数据,它们可能会延迟 sheet 使用新表单数据填充。
为避免冲突,在检索
sheet.getLastRow()
或访问 sheet.[=16 中的数据之前,给传播sheet 一些时间来填充新行=]你可以很容易地点例如Utilities.sleep().
检查您的触发器是否已正确安装。为此检查
- 触发器类型正确
- 触发器绑定到正确的函数
- 通过在重命名函数时创建新触发器来避免冲突。
确认不是触发器的问题restrictions
这是使用简单触发器时的常见错误来源。
检查授权触发器 运行 的帐户是否有权编辑 sheet /范围。这对于检查触发器所有者何时与手动运行脚本的人不同是很重要的。
请注意,对于
中setFormula()
,不需要将=
合并到公式请注意,
时才会 return 预期结果DATEVALUE()
仅当单元格格式正确为日期