Google对现有的Google工作表列进行表单回复,并保持现有的格式

时间:2019-01-04 02:12:48

标签: google-sheets google-form

我有一个现有的google form,并且希望:

Image 1. of the google form question.

1)在此现有google sheet

上自动填充(第1页,C列)中的问题(您叫什么名字)的答案

Image 2. Where the google form data will have to go

2)每次Google表单提交时生成的时间戳,将以YYYY-MM-DD格式自动填充(第1页,E列)。

3)虽然这些Google表单回复将记录在此电子表格中,但有时我还是必须手动输入并在随后的行中输入信息。

这有可能吗?我是将Google表单中的数据导入Google表格的新手,有人可以解决上述问题吗?

1 个答案:

答案 0 :(得分:0)

好的。有几件事。

  1. 转到工具菜单> 脚本编辑器
  2. 通过单击编辑器左上方的“ 无标题项目”文本来命名脚本(也许是“表单提交”?)。
  3. 用以下代码替换 code.gs 中的所有文本。 (在指示的位置更改代码)。
  4. 然后转到编辑> 当前项目的触发器
  5. 单击显示以下链接:未设置任何触发器。单击此处立即添加一个。
  6. 在“运行”下,选择 onSubmit
  7. 在“事件”下,选择“ 在表单提交中”。
  8. 点击保存
  9. 现在,您应该返回编辑器并按“播放”按钮。这将运行该功能并启动授权过程。单击提示并接受。

现在,每次提交表单时,名称和时间戳都会被复制一次。

function onSubmit() {

    var spreadsheet = SpreadsheetApp.getActive();

    var responseSheet = spreadsheet.getSheetByName('Form Responses 1');
    var copyToSheet = spreadsheet.getSheetByName('Target');

    var rLastRow = responseSheet.getLastRow();
    var tLastRow = copyToSheet.getLastRow() + 1;
    var lastCol = responseSheet.getLastColumn();

    var values = responseSheet
        .getRange(rLastRow, 1, 1, lastCol)
        .getValues()[0];

    var timestamp = Utilities.formatDate(new Date(values[0]), Session.getScriptTimeZone(), 'yyyy-MM-dd');

    var name = values[1];

    copyToSheet.getRange('C' + tLastRow).setValue(name);
    copyToSheet.getRange('E' + tLastRow).setValue(timestamp).setNumberFormat('yyyy-MM-dd');
}