Is there any way to modify my script to have the sheet it’s copying insert the new sheet immediately to the right of the one it’s copying? I have tons of tabs in the file, and it’s starting to get really annoying to scroll all the way over to the end every time I create a new one.
function duplicateProtectedSheet() { var ss = SpreadsheetApp.getActiveSpreadsheet(); sheet = ss.getSheetByName("Jun 24"); sheet2 = sheet.copyTo(ss).setName("Jun 30"); var p = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0]; var p2 = sheet2.protect(); p2.setDescription(p.getDescription()); p2.setWarningOnly(p.isWarningOnly()); if (!p.isWarningOnly()) { p2.removeEditors(p2.getEditors()); p2.addEditors(p.getEditors()); // p2.setDomainEdit(p.canDomainEdit()); // only if using an Apps domain } var ranges = p.getUnprotectedRanges(); var newRanges = []; for (var i = 0; i < ranges.length; i++) { newRanges.push(sheet2.getRange(ranges[i].getA1Notation())); } p2.setUnprotectedRanges(newRanges); var protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE); for (var i = 0; i < protections.length; i++) { var p = protections[i]; var rangeNotation = p.getRange().getA1Notation(); var p2 = sheet2.getRange(rangeNotation).protect(); p2.setDescription(p.getDescription()); p2.setWarningOnly(p.isWarningOnly()); if (!p.isWarningOnly()) { p2.removeEditors(p2.getEditors()); p2.addEditors(p.getEditors()); // p2.setDomainEdit(p.canDomainEdit()); // only if using an Apps domain } } }