Meaning of On Error Goto 0

F

FARAZ QURESHI

Would one of you please explain the following code to me step by step?

Sub test()
Dim x As Range
On Error Resume Next
Set x = Application.InputBox("Select the cells.", Type:=8)
If Err.Number <> 0 Then
MsgBox ("You Cancelled The Operation.")
Exit Sub
On Error GoTo 0
End If
MsgBox (x.Address)
End Sub

All I want to do is create an inputbox which ONLY upon hitting the Cancel
Button would display the msgbox "You Cancelled The Operation." and not on any
other error.

All your help and expert advice shall be obliged.

Thanx in advance.
 
F

FARAZ QURESHI

Thanx Jacob,

However, such a code is not correctly working for the Type:=8 inputbox.
Modifying the code to:

Sub test2()
Dim varInput As Variant
varInput = Application.InputBox("Please enter the value", Type:=8)
If varInput = False Then
MsgBox "You cancelled the operation"
Else
MsgBox (varInput.Address)
End If
End Sub

is showing MsgBox "You cancelled the operation" even though I selected a
range, instead of showing the address of the cells.
 
J

Jacob Skaria

Try this..

Sub Macro1()

Dim myRange As Range

On Error Resume Next
Application.DisplayAlerts = False
Set myRange = Application.InputBox(Prompt:= _
"Please select a range", Type:=8)
On Error GoTo 0
Application.DisplayAlerts = True

If myRange Is Nothing Then
MsgBox "You cancelled the operation"
Exit Sub
Else
MsgBox myRange.Address
End If

End Sub

If this post helps click Yes
 
F

FARAZ QURESHI

Great!

Excellent introduction of Application.DisplayAlerts = False especially in
case of pressing OK without inserting a range in the InputBox.

Thanx again pal!
 
D

Dave Peterson

The "on error resume next" says that your could expects that an error could come
from the next few(?) lines--until you turn error checking back on.

I'd use:

Option Explicit
Sub test()
Dim x As Range

set x = nothing
On Error Resume Next
Set x = Application.InputBox("Select the cells.", Type:=8)
on error goto 0

if x is nothing then
msgbox "You Cancelled The Operation."
else
MsgBox x.Address
end if

End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top