I have been using the following.
Function WorksheetExists(TWbk As String, WName As String) As Boolean
' Returns True if a worksheet WName exists in Workbook TWbk
Dim Counter As Long
WorksheetExists = False
Counter = 1
' The Worksheet names are Case Insensitive, hence the
' Upper Case conversion in the comparison.
If UCase(WName) = UCase(Workbooks(TWbk).Worksheets(Counter).Name) Then
WorksheetExists = True
If Counter = Workbooks(TWbk).Worksheets.Count Then
Counter = Counter + 1
Someone else might be able to come up with a more elegant solution but I know this one works.