不确定创建脚本是否答案-任何建议

问题描述

如果可能的话,我正在尝试使工作表自动化。我的示例如下。

简·多伊(Jane Doe)用表格填写了一项调查(姓名,日期,电子邮件,她想教的课程),然后该调查显示在响应电子表格中。约翰·史密斯(John Smith)也填写了它,所以现在我在电子表格上有两行包含响应的行。我想知道google表格是否可以在底部为Jane(sheet2)和John(sheet3)自动创建一个新标签(表格)(对每个调查回复依此类推),然后将所有答案复制到自己的标签中标签。这样做的原因是,我必须联系Jane并询问她其他问题,而在底部添加我自己的标签即可轻松添加我的其他信息。我还将学生姓名添加到她的标签中以跟踪他们。 John和其他填写调查表的人也是如此。那有意义吗? 我在Google文档编辑器中发布了问题,他们建议我在此处提交问题,因为我可能需要运行脚本。

https://docs.google.com/spreadsheets/d/1akTLcXJnjwg8B-aSOP8JvrXBFRwXMkeluwi35WU1d98/edit?usp=sharing

解决方法

解决方案

您可以在Apps脚本中使用Form Submit trigger来触发我在下面提供的脚本,这样,每当有人在链接的电子表格中提交答案时,都会使用一个新的表格(带有响应者的姓名)添加了该提交的详细信息。

使用以下脚本在电子表格中添加自我说明注释(在电子表格菜单栏中,转到工具->脚本编辑器并粘贴并保存以下内容):

function FormSubmit() {
// Get the sheet where all form responses are added
  var sheet = SpreadsheetApp.getActive().getSheetByName('Form Responses 1');
  
  // Get all the data from the new response. I have used the method
  //getRange(row,col,number rows,number columns) and getValues which as
  // it returns a 2D array I have flatten it for easier use latter on.
  var getData = sheet.getRange(sheet.getLastRow(),1,5).getValues().flat();
  // Create new sheet setting its name to the property name that we had in our original
  // sheet
  var newSheet = SpreadsheetApp.getActive().insertSheet().setName(getData[1]);
  
  // iterate over all the questions and details in the form and copy their values from
  // the original sheet and paste them into the new sheet we just created
  for(i=0;i<getData.length;i++){
  newSheet.getRange(1,i+1).setValue(getData[i]);
  }
}

为使此功能正常工作并在每次有答案时添加摘要表,必须在脚本编辑器中转到菜单栏,然后​​选择编辑->当前项目的触发器。这将带您进入一个新页面,您必须在该页面上单击添加触发器并选择以下内容:

  • 要运行的功能:FormSubmit
  • 选择事件源:从电子表格中
  • 选择事件类型:在表单上提交

最后单击保存,您就可以开始了!

我希望这对您有所帮助。让我知道您是否需要其他任何东西,或者您是否不了解。 :)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...