我已设法使用Google表单回复填充我需要的模板,甚至制作所述文件的副本并使用特定名称保存。所有这一切都由表格上的“提交”按钮触发。
问题如下: 当我直接从Scrip编辑器运行脚本时,它运行得很好。 但是当我填写表单作为测试时,在脚本创建模板副本之前不会填充所有单元格。
¿如何在脚本复制之前确保填充所有需要的单元格?
或者,我如何先制作模板的副本,然后使用表单回复填充副本?
这是我的代码:
function Copy()
{
//Modify template
// Source sheet
var RespID = SpreadsheetApp.openById('SOURCEID');
//Source Sheet tab name
var FORM = RespID.getSheetByName('Form Responses 1');
//Destination Sheet
var TEMP = SpreadsheetApp.openById('DESTINATIONID');
//Destination Sheet tab name
var MPFO = TEMP.getSheetByName('MPFO');
// POPULATE TEMPLATE
//VARIABLES
var lastRow = FORM.getMaxRows();
var LR = FORM.getLastRow();
var NAME = FORM.getRange('C' + ":" + 'C' + LR).getValue();
var PLNT = FORM.getRange('D' + ":" + 'D' + LR).getValue();
var DATE = FORM.getRange('E' + ":" + 'E' + LR).getValue();
var AREA = FORM.getRange('F' + ":" + 'F' + LR).getValue();
var MACH = FORM.getRange('G' + ":" + 'G' + LR).getValue();
var STAT = FORM.getRange('H' + ":" + 'H' + LR).getValue();
var SAPN = FORM.getRange('I' + ":" + 'I' + LR).getValue();
var MANF = FORM.getRange('J' + ":" + 'J' + LR).getValue();
var IMPA = FORM.getRange('K' + ":" + 'K' + LR).getValue();
var PPPP = FORM.getRange('L' + ":" + 'L' + LR).getValue();
var PROB = FORM.getRange('M' + ":" + 'M' + LR).getValue();
var PROD = FORM.getRange('N' + ":" + 'N' + LR).getValue();
var PROI = FORM.getRange('O' + ":" + 'O' + LR).getValue();
var SOLD = FORM.getRange('P' + ":" + 'P' + LR).getValue();
var SOLI = FORM.getRange('Q' + ":" + 'Q' + LR).getValue();
var FNAM = FORM.getRange('R' + ":" + 'R' + LR).getValue();
var KEYW = FORM.getRange('S' + ":" + 'S' + LR).getValue();
var MPIN = MPFO.getRange('O3').getValue();
if (IMPA == "Rel"){ MPFO.getRange('C8').setValue("X"); }
else if (IMPA == "QUa") { MPFO.getRange('C10').setValue("X"); }
else if (IMPA == "Ope") { MPFO.getRange('C12').setValue("X"); }
else if (IMPA == "Mai") { MPFO.getRange('F8').setValue("X"); }
else if (IMPA == "Cos") { MPFO.getRange('F10').setValue("X"); }
else if (IMPA == "Sen") { MPFO.getRange('F12').setValue("X"); }
if (PILL == "S"){ MPFO.getRange('I8').setValue("X"); }
else if (PILL == "F") { MPFO.getRange('I10').setValue("X"); }
else if (PILL == "A") { MPFO.getRange('I12').setValue("X"); }
else if (PILL == "W") { MPFO.getRange('K8').setValue("X"); }
else if (PILL == "P") { MPFO.getRange('K10').setValue("X"); }
else if (PILL == "Q") { MPFO.getRange('K12').setValue("X"); }
else if (PILL == "L") { MPFO.getRange('M8').setValue("X"); }
else if (PILL == "E") { MPFO.getRange('M10').setValue("X"); }
else if (PILL == "N") { MPFO.getRange('M12').setValue("X"); }
if (PROB == "Pla"){ MPFO.getRange('P7').setValue("X"); }
else if (PROB == "Bas") { MPFO.getRange('P9').setValue("X"); }
else if (PROB == "Det") { MPFO.getRange('P11').setValue("X"); }
else if (PROB == "Con") { MPFO.getRange('P13').setValue("X"); }
else if (PROB == "Ins") { MPFO.getRange('R7').setValue("X"); }
else if (PROB == "Tri") { MPFO.getRange('R9').setValue("X"); }
else if (PROB == "Fin") { MPFO.getRange('R11').setValue("X"); }
else if (PROB == "Dur") { MPFO.getRange('R13').setValue("X"); }
MPFO.getRange('B3').setValue(NAME);
MPFO.getRange('F3').setValue(PLNT);
MPFO.getRange('K3').setValue(DATE);
MPFO.getRange('B5').setValue(AREA);
MPFO.getRange('E5').setValue(MACH);
MPFO.getRange('J5').setValue(STA);
MPFO.getRange('O5').setValue(SAPN);
MPFO.getRange('Q5').setValue(MANF);
MPFO.getRange('A49').setValue(PROD);
MPFO.getRange('K49').setValue(PROI);
MPFO.getRange('Q62').setValue("");
MPFO.getRange('Q62').setValue("");
// COPY OF WORKSHEET
var COPYS = 'TEMPLATEID';
var workingCopy = DriveApp.getFileById(COPYS).makeCopy();
var workingFileID = workingCopy.getId();
var tempID = SpreadsheetApp.openById(COPYS);
//Set the file name of the copy file
var fileNameToUse = MPIN + " - " + FNAM + " - " + KEYW;
workingCopy.setName(fileNameToUse);