google-apps-script - 谷歌脚本正在将变量的先前值传递给谷歌表
问题描述
我正在使用 Google 表单。此表单将从用户那里收集数据,然后将其传递到 Google 表格中,以根据用户在表单中输入的数据创建特定格式的报告。
由于报告有特定的格式,所以我必须复制一个模板以避免覆盖原始模板。
当数据输入到 Google 表格时,我遇到了问题。Google 脚本正在输入变量“NewTempCopyName”的先前值。
下面是代码:
function onSubmit(e) {
var NewTempCopyName = Utilities.formatDate( new Date(),"GMT+1","ddMMyyyyhhmmss");
Logger.log(NewTempCopyName);
var tmpsheet = DriveApp.getFilesByName("Form2 Template").next();
tmpsheet.makeCopy(NewTempCopyName);
var fid = tmpsheet.getId();
var ss =SpreadsheetApp.openById(fid);
SpreadsheetApp.setActiveSpreadsheet(ss);
var sheet = ss.getSheetByName("Sheet1");
Logger.log(NewTempCopyName);
SpreadsheetApp.getActiveSheet().getRange("B1").setValue(NewTempCopyName);
Logger.log(NewTempCopyName);
}
在上面的代码中,如果变量的先前值为 18092018114846,新值为 18092018115332,则脚本在 B1 中传递 18092018114846。
记录器在前后记录正确的值:
SpreadsheetApp.getActiveSheet().getRange("B1").setValue(NewTempCopyName);
解决方案
您设置NewTempCopyName
一次,就没有理由改变它。即使它是基于 DateTime 的,它也不会随时间更新。
目前尚不清楚您要在哪个工作表中设置 B1 的值。如果是副本,则需要进行以下更改:
var newCopy = tmpsheet.makeCopy(NewTempCopyName);
var fid = newCopy.getId();
如果不是,那么您的代码会像描述的那样运行;您确定 Logger 在第 13 行到第 15 行之间列出了不同的值吗?
推荐阅读
- google-cloud-platform - 如何使用python+stackdriver查询gcp google cloud中的空闲实例?
- python - python中变量命名的约定是什么?
- python - 如何在 for 循环中添加另一个条件
- python - FasterRcnn 模型未显示边界框
- java - 如何解决第 27、43 行中表达式的非法开头?
- mongodb - mongoose 的“有独立工作收入的员工”模式设计的问题
- javascript - 尝试使用文本初始化编辑器时出现“n.createFromText 不是函数”错误
- python - 使用 SMTP 通过 python 发送邮件
- c# - EF Core 3.1 - 断开连接的图 - 导航属性 - 实体已跟踪异常 - 前进的方向
- python - 在一定范围内删除字典中的键/值对