Have you considered using the sheet index instead of the name? Sheet1
is always an index of 1 even though the name changes. I'd probably DIM
the sheets at the beginning of the code. For instance, assume Sheet1
was renamed to "Info", Sheet2 to "Data" and Sheet3 "Results". Then....
Sub SheetNames()
Dim shInfo, shData, shResults As Worksheet
Set shInfo = Sheets(1)
Set shData = Sheets(2)
Set shResults = Sheets(3)
i = 1
For Each sh In Sheets
MsgBox Sheets(i).Name
i = i + 1
Next
End Sub
HTH - John
www.JohnMichl.com