我正在使用Google表单 . 此表单将从用户收集数据,然后将其传递到Google表格中,以便从表单中用户输入的数据中创建特定格式的报告 .
由于报告具有特定格式,因此我必须复制模板以避免覆盖原始模板 .
我将面临问题,因为数据已输入Google表格 . Google Script正在输入变量“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 .
Logger 在之前和之后记录正确的值:
SpreadsheetApp.getActiveSheet().getRange("B1").setValue(NewTempCopyName);
1 回答
您正在设置
NewTempCopyName
一次,没有理由进行更改 . 即使它是基于DateTime,它也不会随时间更新 .目前尚不清楚要在哪个工作表中设置B1的值 . 如果是副本,您需要进行以下更改:
如果没有,则会出现您的代码功能如上所述;你确定Logger列出第13行到第15行之间的不同值吗?