happyhungarian
Active Member
- Joined
- Jul 19, 2011
- Messages
- 252
- Office Version
- 365
- Platform
- Windows
Hi, I'm using the following code to take the names located in a range, make a copy of a template worksheet called "blank", duplicate that template the number of required times, then rename the new worksheets with the list of names in the previously stated range. Two questions though: first, if there's already a worksheet with the same name as one that's in the list that i'm trying to create then the macro errors out. Is there a way to tell it to just skip that name if it's already being used for another tab? Second, instead of defining the range as "Range("b17:b19"), can i reference a Table so that as the list expands and contracts I dont need to manually update the range in the code?
Sub CreateAndNameWorksheets()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Sheets("Start").Range("b17:b19")
Sheets("blank").Copy After:=Sheets(Sheets.Count)
With c
ActiveSheet.Name = .Value
.Parent.Hyperlinks.Add Anchor:=c, Address:="", SubAddress:= _
"'" & .Text & "'!A1", TextToDisplay:=.Text
End With
Next c
Application.ScreenUpdating = True
End Sub
Sub CreateAndNameWorksheets()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Sheets("Start").Range("b17:b19")
Sheets("blank").Copy After:=Sheets(Sheets.Count)
With c
ActiveSheet.Name = .Value
.Parent.Hyperlinks.Add Anchor:=c, Address:="", SubAddress:= _
"'" & .Text & "'!A1", TextToDisplay:=.Text
End With
Next c
Application.ScreenUpdating = True
End Sub