[英]Google Spreadsheet, Creating multiple rows on form submit
我有一个写入电子表格的Google表单。
当前,在表单上会创建一个新行。
我想做的是 表单上有一个数字字段,用户可以选择一个值N。提交表单后,我希望电子表格创建N行相同的数据。
我已经以几种方式考虑过它。 如果可以基于N进行自动操作,那将是最好的选择。或者,可以将值N放在隐藏的列H中,而电子表格上的脚本可以读取该值并将其复制N次,并可能在H列{ N-1,... 1}(如果这样更容易)。
表单提交脚本时;
将新数据复制到新的空白行中的适当位置。
函数onSubmit(){
//表单提交到的工作表
var sheet = SpreadsheetApp.getActiveSpreadsheet()。getSheetByName(“ FORM TARGET 1”);
var lastRow = sheet.getLastRow();
//在“表单目标1”中从指定的列中读取新行的数量
var N = sheet.getRange(lastRow,1).getValue();
//我们将写到的工作表
var sheetRec = SpreadsheetApp.getActiveSpreadsheet()。getSheetByName(“ Target”);
var lastColumn = sheetRec.getLastColumn();
var lastRowT = sheetRec.getLastRow();
//通过复制模板行N次来创建N个新行
var Template = sheetRec.getRange(2,1,1,lastColumn);
对于(j = 1; j <= N; j ++){
Template.copyTo(sheetRec.getRange(lastRowT + j,1));
}
//将新数据值复制到行中
var Val1 = sheet.getRange(row,1);
var Val2 = sheet.getRange(row,5);
var Val3 = sheet.getRange(row,7);
var Val4 = sheet.getRange(row,8);
Val1.copyValuesToRange(sheetRec,1,1,lastRowT + 1,lastRowT + N);
Val2.copyValuesToRange(sheetRec,2,2,lastRowT + 1,lastRowT + N);
Val3.copyValuesToRange(sheetRec,4,4,lastRowT + 1,lastRowT + N);
Val4.copyValuesToRange(sheetRec,5,5,lastRowT + 1,lastRowT + N);
}
我只从FORM TARGET 1复制某些单元格是有原因的,为什么范围不能是连续的。
我必须使用for循环来复制模板行,因为copyValuesToRange()和copyFormatsToRange()不会复制函数。 我在某些列中具有对复制数据起作用的函数。
我有更全面讨论了这个问题在这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.