vbCancel

  • Thread starter Thread starter Robin Clay
  • Start date Start date
R

Robin Clay

Greetings !

I have an InputBox.

How do I distinguish between a valid input value of 2 and
the user clicking on the "Cancel" button ?

This worked just FINE - until I entered a value of 2 !

Ans = InputBox( _
"Enter a value between 1 and 5, myTitle, TP)
If Ans = vbCancel Then Exit Sub
TP = Ans
 
When I hit Cancel (or X) on an InputBox, I get the returned value of 0
(Zero).

If Ans = 0 Then Exit Sub

Tested using Excel 97SR2 on Windows 98SE,

HTH
Paul
 
According to help:

If the user clicks OK or presses ENTER , the InputBox function returns
whatever is in the text box. If the user clicks Cancel, the function returns
a zero-length string ("").

you must have Ans dim'd as a number.
 
Maybe, I'm missing something. I thought that he was trying to return a
number between 1 and 5.

Paul
 
But he was making his comparison to vbCancel which is a two and is usable
with a msgbox, not an input box.

? vbCancel
2


You said hitting cancel in an inputbox returns zero - it doesn't
"When I hit Cancel (or X) on an InputBox, I get the returned value of 0
(Zero)."

Tested in the immediate window (cancel was selected)

? inputbox("abc")

------ it returned a null string

? typename(inputbox("abc"))
String

A vba inputbox always returns a string.

An empty string is coerced to zero in most cases if you force it to be used
as a number, but not always. For instance

? inputbox("abc") = 0
raises a type mismatch error when I hit cancel.

I just provided information on what an inputbox actually returns.
 
Probably, but an inputbox will return a string. Text. "1", "5", or similar. If Ans is
declared as a String then the thing is not a number. If it's Long or Double then VBA may
convert it by helpful intelligence -but it will crash merciless if you enter "Dont know"
into the box. Anyway, Cancel returns "" no matter what you prompt for desired entries.
 
You're right.

I was using the InputBox method (Application.InputBox) rather than
the InputBox function. I should have read the OP's question and your
response in a less cursory manner.

Paul
-----------------------------------------------------------------------
 
Back
Top