ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Question on "On Error GoTo skip" (https://www.excelbanter.com/excel-discussion-misc-queries/148616-question-error-goto-skip.html)

dan

Question on "On Error GoTo skip"
 
I have this routine in "TestBook.xls"


Sub check()
' I want to check if "data.csv" is open.
' Why statement "On Error GoTo skip1" works once only?
' I expected Range("L4:L10") = 0 if "data.csv" is not open
' Range("L4:L10") = 1 if "data.csv" is open
' Please help

Dim r As Long
For r = 4 To 10
On Error GoTo skip1
Windows("data.csv").Activate
GoTo skip2
skip1:
Windows("TestBook.xls").Activate
Cells(r, 12) = 0
GoTo skip3
skip2:
Windows("TestBook.xls").Activate
Cells(r, 12) = 1
skip3:
Next r
End Sub



Sandy Mann

Question on "On Error GoTo skip"
 
I assume it is because you are using an object. Help says:

"On Error Resume Next Specifies that when a run-time error occurs, control
goes to the statement immediately following the statement where the error
occurred where execution continues. Use this form rather than On Error GoTo
when accessing objects."

And this seems to work:

Sub check()
' I want to check if "data.csv" is open.
' Why statement "On Error GoTo skip1" works once only?
' I expected Range("L4:L10") = 0 if "data.csv" is not open
' Range("L4:L10") = 1 if "data.csv" is open
' Please help

Dim r As Long
For r = 4 To 10
On Error Resume Next
Windows("data.csv").Activate
If Error = Error(9) Then GoTo skip1
GoTo skip2
skip1:
Windows("TestBook.xls").Activate
Cells(r, 12) = 0
GoTo skip3
skip2:
Windows("TestBook.xls").Activate
Cells(r, 12) = 1
skip3:
Next r
End Sub

--
HTH

Sandy
In Perth, the ancient capital of Scotland
and the crowning place of kings


Replace @mailinator.com with @tiscali.co.uk


"dan" wrote in message
news:dSThi.2428$Nw5.2090@trndny04...
I have this routine in "TestBook.xls"


Sub check()
' I want to check if "data.csv" is open.
' Why statement "On Error GoTo skip1" works once only?
' I expected Range("L4:L10") = 0 if "data.csv" is not open
' Range("L4:L10") = 1 if "data.csv" is open
' Please help

Dim r As Long
For r = 4 To 10
On Error GoTo skip1
Windows("data.csv").Activate
GoTo skip2
skip1:
Windows("TestBook.xls").Activate
Cells(r, 12) = 0
GoTo skip3
skip2:
Windows("TestBook.xls").Activate
Cells(r, 12) = 1
skip3:
Next r
End Sub






dan

Question on "On Error GoTo skip"
 
Great Help!
Thank you very much, Sandy

"Sandy Mann" wrote in message
...
I assume it is because you are using an object. Help says:

"On Error Resume Next Specifies that when a run-time error occurs, control
goes to the statement immediately following the statement where the error
occurred where execution continues. Use this form rather than On Error
GoTo
when accessing objects."

And this seems to work:

Sub check()
' I want to check if "data.csv" is open.
' Why statement "On Error GoTo skip1" works once only?
' I expected Range("L4:L10") = 0 if "data.csv" is not open
' Range("L4:L10") = 1 if "data.csv" is open
' Please help

Dim r As Long
For r = 4 To 10
On Error Resume Next
Windows("data.csv").Activate
If Error = Error(9) Then GoTo skip1
GoTo skip2
skip1:
Windows("TestBook.xls").Activate
Cells(r, 12) = 0
GoTo skip3
skip2:
Windows("TestBook.xls").Activate
Cells(r, 12) = 1
skip3:
Next r
End Sub

--
HTH

Sandy
In Perth, the ancient capital of Scotland
and the crowning place of kings


Replace @mailinator.com with @tiscali.co.uk


"dan" wrote in message
news:dSThi.2428$Nw5.2090@trndny04...
I have this routine in "TestBook.xls"


Sub check()
' I want to check if "data.csv" is open.
' Why statement "On Error GoTo skip1" works once only?
' I expected Range("L4:L10") = 0 if "data.csv" is not open
' Range("L4:L10") = 1 if "data.csv" is open
' Please help

Dim r As Long
For r = 4 To 10
On Error GoTo skip1
Windows("data.csv").Activate
GoTo skip2
skip1:
Windows("TestBook.xls").Activate
Cells(r, 12) = 0
GoTo skip3
skip2:
Windows("TestBook.xls").Activate
Cells(r, 12) = 1
skip3:
Next r
End Sub









All times are GMT +1. The time now is 08:26 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com