我正在使用Google Form。此表单将从用户收集数据,然后将其传递到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);
答案 0 :(得分:0)
您一次设置了NewTempCopyName
,因此没有理由对其进行更改。即使基于DateTime,它也不会随时间更新。
不清楚要在哪个表中设置B1的值。如果是副本,则需要进行以下更改:
var newCopy = tmpsheet.makeCopy(NewTempCopyName);
var fid = newCopy.getId();
如果没有,那么您的代码将按所述功能运行;您确定Logger在第13行到第15行之间列出了不同的值吗?