View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Jim Thomlinson Jim Thomlinson is offline
external usenet poster
 
Posts: 5,939
Default search for worksheet, insert new if doesn't exist

Here is a function that tells you if a sheet exists in a given workbook

Public Function SheetExists(SName As String, _
Optional ByVal Wb As Workbook) As Boolean
'Chip Pearson
On Error Resume Next
If Wb Is Nothing Then Set Wb = ThisWorkbook
SheetExists = CBool(Len(Wb.Sheets(SName).Name))
End Function

If sheetexists(sYear) Then
Set wsI = Sheets(sYear)
Else
Sheets.Add
Set wsI = Activesheet
wsI.Name = sYear
End If

--
HTH...

Jim Thomlinson


"cereldine" wrote:


Im opening up a workbook and then selecting a worksheet based on a
string variable like so (wsI is worksheet variable, sYear is search
criteria)

Set wsI = Sheets(sYear)

I would like to improve this so that if the worksheet does not exist i
insert a new one and then rename it to my search variable, i thought
something along the lines of the below would work but it hasn't! I
guess the 0 is the wrong thing to look for, any help appreciated

If Sheets(sYear) = 0 Then
Sheets.Add
ActiveSheet.Name = sYear
Else
Set wsI = Sheets(sYear)
End If


--
cereldine
------------------------------------------------------------------------
cereldine's Profile: http://www.excelforum.com/member.php...o&userid=32069
View this thread: http://www.excelforum.com/showthread...hreadid=535008