How can I automatically create and name new sheets in a Google Spreadsheet from a list of names which are being input in the sheet from a Google Form? I would like each new sheet to be created when a new name is added from the form. The new sheets should in the same spreadsheet.

This should all be done automatically whenever a new name is added in the form.


This can be done with a script. Enter the following in Script Editor, found under Tools. Change the 'Name' to whatever is the name of the form field that should be used.

function formSheet(e) {
  var sheetName = e.namedValues['Name'][0];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet(sheetName);
  sheet.getRange(1, 1, 1, e.values.length).setValues([e.values]);

Then set a trigger using "Resources -> current project's triggers" in the menu. It should be "from spreadsheet", "on form submit".

This function also copies the submitted value to the first row of the new sheet.

Note: there cannot be two sheets with the same name, so if some name is submitted more than once, sheet creation will fail.

References: Event object, Sheet class methods.

protected by Community Dec 11 '18 at 12:49

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.