将最后一个表单回复复制到新的最后一行其他表单中

问题描述 投票:0回答:1

我对使用应用脚本进行编码非常陌生,但我正在尝试设置一个代码,以将新的Google表单电子表格提交的最后一行转移到同一工作簿中的另一张纸上。我尝试这样做的原因是,我可以对数据进行简单的计算并编辑数据(无法使用Query函数编辑数据)。

我有一张纸被称为(表单响应1),另一张纸被称为(客户)。填写表格后,所有答案当然都会自动转移到“表格响应1”表格中。我想将Form Response 1工作表的最后一行自动复制到Clients工作表,以便可以编辑信息并将其用于计算中,而不会丢失原始提交的信息,该原始提交将出现在Form Responses 1(不是查询)中。

我用非常基础的知识尝试过两种代码,但它们都不起作用。代码可能很烂,但是任何帮助和建议都将不胜感激!

我尝试过的代码1

function onFormSubmit(e){
  var ss = SpreadsheetApp.getSheetByName("Form responses 1")();
  var copyFromRange = 'Form responses 1!A2:M999';
  var copyToRangeStart = 'Clients!A2:M999';
  copyValuesOnly(copyFromRange, copyToRangeStart);
}

我尝试过的代码2

function onFormSubmit(e){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Form responses 1');
  var r = s.getRange(s.getLastRow(),s.getLastColumn());
  var data = r.getValues();

  var row = r.getRow();
  var numColumns = s.getLastColumn();
  var targetSheet = ss.getSheetByName("Clients");
  var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
  targetSheet.getRange(targetSheet.getLastRow()+1,1,1,20).setValues(data);

我一直在浏览该网站,同时试图弄清楚这一点并了解有关脚本的更多信息,你们都为您提供了很大的帮助!

google-apps-script google-sheets google-form
1个回答
0
投票
function onFormSubmit(e){
  var ss=SpreadsheetApp.getActive();
  ss.getSheetByName('Clients').appendRow(e.values);
}

onFormSubmit Event Object

您不希望获得最后一行,因为如果提交速度很快,则最后一行可能不是当前onFormSubmit触发器中的那一行。

© www.soinside.com 2019 - 2024. All rights reserved.