View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Rob van Gelder[_4_] Rob van Gelder[_4_] is offline
external usenet poster
 
Posts: 1,236
Default Test for Worksheet Exists

Here's a test for a worksheet

Sub test()
Dim wks As Worksheet, bln As Boolean

On Error Resume Next
Set wks = Worksheets("sheet1")
bln = (Err.Number = 0)
On Error GoTo 0

MsgBox bln

End Sub


--
Rob van Gelder - http://www.vangelder.co.nz/excel


"bcmiller " wrote in message
...
Hi All,

This is probably a simple one that I have managed to overlook but here
goes. I have a workbook that contains some data sheets and report
sheets. Each report sheet is identical and extracts similar data from
the data sheet. I can set this up using formulas but it takes forever
to calculate (over 30,000 formulas).

So I have set up some code to do the calculations faster. Basically, I
have a control list of the worksheets that are report sheets that the
code should be executed on. I use a for loop to work through each
sheet and only want to perform the computations if a sheet matching the
entry in the list exists. The part where I am falling over is where I
have set a worksheet variable with a sheet name that doesn't exist. I
can't find a test that works. Here is a code sample:

On Error Resume Next
For a = LBound(CostCentreList) To UBound(CostCentreList)
CostCentreList(a) = CCRange.Cells(a + 1, 1).Value
Next

........

For i = 0 To CCListLength - 1
Set ExpSheet = wkb.Worksheets(CostCentreList(i))
If IsEmpty(ExpSheet) = False Then

...........
The value of ExpSheet here is 'Nothing' as I have used a sheet name
that does not exist, however the if statement says that it does.


Thanks in Advance.

BC


---
Message posted from http://www.ExcelForum.com/