Google脚本将变量的​​先前值传递给Google工作表

时间:2018-09-18 23:33:31

标签: google-apps-script

我正在使用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);

1 个答案:

答案 0 :(得分:0)

您一次设置了NewTempCopyName,因此没有理由对其进行更改。即使基于DateTime,它也不会随时间更新。

不清楚要在哪个表中设置B1的值。如果是副本,则需要进行以下更改:

var newCopy = tmpsheet.makeCopy(NewTempCopyName);
var fid = newCopy.getId();

如果没有,那么您的代码将按所述功能运行;您确定Logger在第13行到第15行之间列出了不同的值吗?