Thread: Loop gone crazy
View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.misc
Andrew Taylor
 
Posts: n/a
Default Loop gone crazy

<OT
Dredging the recesses of my memory, the "1 or 2 or 3 or 4" idiom
used to be (probably still is for all I know...) valid in COBOL:

IF THING = 1 OR 2 OR 3 OR 4....

as an abbreviation for IF THING = 1 OR THING = 2 OR ....

You could even put NOTs in there, which was guaranteed to
catch the unwary, who would write:

IF THING NOT = 1 OR 2...

which unfortunately means IF THING NOT = 1 OR THING NOT = 2..
</OT


Dave Peterson wrote:
Excellent tip.

But I did want to show the OP why his (her?) if statement was incorrect.

Andrew Taylor wrote:

I think there's a good case (haha) for using Select Case
in this sort of situation:

Select Case shp
Case 1, 2, 3, 4
shpSw =1
Case Else
Msgbox("Please enter a number from 1-4")
End Select

Dave Peterson wrote:
I'd guess it was this line:

if shp = 1 or 2 or 3 or 4 then

I think you want:

if shp = 1 _
or shp = 2 _
or shp = 3 _
or shp = 4 then



mjack003 wrote:

Howdy,

Can someone tell me why this loop accepts any value rather than the set
constants?

Dim shp as Long
Dim shpSw as Integer

Do while shpSw = 0

shp = inputbox("Please enter a number:")

if shp = 1 or 2 or 3 or 4 then
shpSw =1

else

Msgbox("Please enter a number from 1-4")

end if
Loop

Should be a simple loop that if say "5" is entered will give the msgbox
and loop but it is accepting 5 and setting my switch to 1.

Thanks for the help in advance,

Mjack

--
mjack003
------------------------------------------------------------------------
mjack003's Profile: http://www.excelforum.com/member.php...fo&userid=5141
View this thread: http://www.excelforum.com/showthread...hreadid=494023

--

Dave Peterson


--

Dave Peterson