I often end up confused about some of the Google Script stuff so I’m putting this out there in case it helps others.
The following script does a few things that you might want to do all based around a Google Form submission. It creates a folder, adds editors to the folder, puts the folder in another folder, and then copies a spreadsheet to the folder while adding some data in a few cells.
function initName() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; // This logs the value in the very last cell of the sheet you used when making the script var lastRow = sheet.getLastRow(); var folder = sheet.getRange(lastRow, 2); //gets the last row and second column var init = folder.getValue(); //gets the value of the cell in the last row and second column var email = sheet.getRange(lastRow, 10); //gets the last row and tenth column var editor = email.getValue(); //gets the value //this chunk is a bit messy but array drama around adding multiple editors see http://stackoverflow.com/questions/11287629/addeditors-to-document-from-formsubmit var emails = sheet.getRange(lastRow, 11); var editors = emails.getValue() + ', ' + editor; var team = editors.replace(/, /g,"|"); //remove unwanted spaces and commas replace by | var teamArray = team.split('|'); var folder; folder = DriveApp.getFoldersByName(init); if (folder.hasNext()) { } else { folder = DriveApp.createFolder(init); folder.addEditors(teamArray); //adds the array of email addresses from above from two columns as editors } var parentFolder = DriveApp.getFolderById("thiswastheidbutIremovedit"); //move create folder to parent folder parentFolder.addFolder(folder); var file = DriveApp.getFileById("thiswasanotheridbutIremovedit"); //copies the ss file with the details over to the parent folder file.makeCopy(init+' details', folder) //gets the ss created above and puts it's URL back in the form for reference var detailsFile = DriveApp.getFilesByName(init+' details'); //names while (detailsFile.hasNext()) { var file = detailsFile.next(); ssId = file.getId(); var ssNew = SpreadsheetApp.openById(ssId); //gets the ID of the new SS SpreadsheetApp.setActiveSpreadsheet(ssNew); ssNew.getRange('B1').setValue(init); //sets cell b1 to the partnership name ssNew.getRange('B2').setValue(editor); //sets cell b2 to lead consultant newSsUrl = ssNew.getUrl(); //get the URL of the details ss sheet.getRange('O'+lastRow).setValue(newSsUrl); //sets cell O (that's the letter O not zero) in the last row to the details ss URL } }