Thread: On Error Issues
View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default On Error Issues

You could use a separate function that checks for existence of the worksheet.

It might make it easier to read your code when you come back to it, too.

Function WorksheetExists(SheetName As Variant, _
Optional WhichBook As Workbook) As Boolean
'from Chip Pearson
Dim WB As Workbook
Set WB = IIf(WhichBook Is Nothing, ThisWorkbook, WhichBook)
On Error Resume Next
WorksheetExists = CBool(Len(WB.Worksheets(SheetName).Name) 0)
End Function

Public Sub sheetCheck()
cNodes = ThisWorkbook.Names("Nodes").RefersToRange.Rows.Cou nt
For i = 1 To cNodes
sheetName = sheetBase & i
if worksheetsexists(sheetname, thisworkbook) then
'it exists
else
'it doesn't exist
end if
next i

End Sub

cmk18 wrote:

I'm having issues capturing an error and using it to direct the code.
Here is the code I'm trying to execute:

Public Sub sheetCheck()
cNodes = ThisWorkbook.Names("Nodes").RefersToRange.Rows.Cou nt
For i = 1 To cNodes
On Error GoTo NewSheet
isThere = True
sheetName = sheetBase & i
Sheets(sheetName).Visible = False
check: If Not isThere Then Sheets("Scoring Sheet 0 (2)").Name =
sheetName
Next i
Exit Sub
NewSheet: Scoring_0.Copy after:=Scoring_0
isThere = False
GoTo check
End Sub

Nodes refers to a list of nodes for this system. The sheets are named
Scoring x, where x would be replaced by i in the loop. The code will
execute perfectly through one error, but if I have more than one
non-existent sheet, it fails.

Cheers-
Chris

--
cmk18
------------------------------------------------------------------------
cmk18's Profile: http://www.excelforum.com/member.php...fo&userid=6047
View this thread: http://www.excelforum.com/showthread...hreadid=386540


--

Dave Peterson