google-apps-script - Google Sheet 脚本未完全执行
问题描述
我正在使用 Google 表单来触发此脚本。
当我使用 Play 按钮运行脚本时,它运行良好。
当我让 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 列中的镜头格式日期填充。
我需要这种格式才能在另一张纸上运行 countIfs。
另一种选择是以某种方式将格式标记嵌入到此 CountIfs 命令中,以便它们匹配。
=COUNTIFS('Form Responses 1'!J:J,A2,'Form Responses 1'!D:D,B2)
解决方案
更新的答案
如果在没有触发器的情况下按预期工作时在触发器上运行函数时遇到问题,请检查以下内容:
对于繁重的文件/表单数据,它们可能会延迟使用新表单数据填充工作表。
为避免冲突,请在检索
sheet.getLastRow()
或访问工作表中的数据之前给电子表格一些时间来填充新行。
检查您的触发器是否已正确安装。为此检查
- 触发器的类型是正确的
- 触发器绑定到正确的函数
- 通过在重命名函数时创建新触发器来避免冲突。
检查问题不是由于触发限制
这是使用简单触发器时的常见错误源。
检查触发器在其授权下运行的帐户是否有权编辑工作表/范围。这对于检查触发器所有者何时与手动运行脚本的人不同非常重要。
请注意,
setFormula()
没有必要将 合并=
到公式中请注意,
DATEVALUE()
仅当单元格正确格式化为日期时才会返回预期结果
推荐阅读
- php - 从 PHP 获取 MySQL 字符串时不相等的二进制字符比较
- c++ - 如何解决 *** `./key_server' 中的错误:free():invalid pointer: 0x00007f361a97b6e8 in c++
- c# - C# IntelliSense 在 Visual Studio Community 2017 和 Unity 中不起作用
- teradata - tdstats.UDFCONCAT 参数 varchar 限制
- android - No solution works for handling of NetworkOnMainThreadException
- vb.net - how can i create dynamically flowlayoutpanels and tabpages in my form
- c++ - 在 C++ 中初始化列表列表
- javascript - 如何访问通过管道传输到 feedparser 的请求的响应标头
- sql - PutHiveQL NiFi 处理器非常慢 - 配置错误?
- react-native - 任务 ':app:validateSigningDebug' 执行失败。在 ReactNative