View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
Tushar Mehta Tushar Mehta is offline
external usenet poster
 
Posts: 1,071
Default Clarification please...

In my programming endeavors I tend to think in terms of intent (where
the code simply reflects the developer's intent). So, if there is a
single intent in the IF/THEN/ELSE parts, I use the single-line form,
even if I then use multiple lines for ease-of-reading. It makes the
*intent* clearer to whoever might be reading the code at a later date.
And, the intent itself might include multiple VBA statements!

Dim x As Integer, y As Integer, z As Boolean
z = Application.InputBox("z?", Type:=4)
If z Then _
x = 0: y = 0 _
Else _
x = 99: y = 99
MsgBox x & "," & y

Of course, all this is moot since VB.Net does not support the single-
line form of the IF.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article <_osic.16879$VQ3.8983@lakeread06, says...
OK - I see it (Tks Dave)...
If you can get the logical statement "ON ONE LINE" the EndIf is not
required.
If you take it two lines or more EndIf is required.
Is that it?????
Sorry for my denseness, but until I confront it - (the denseness) never goes
away LOL
TIA

"JMay" wrote in message
news:Yasic.16745$VQ3.7640@lakeread06...
Arvi:
Thanks for response. So there are two forms of "If";

1) The Single-line form - If True then Statement <<<< Not requiring
"End If"
2) The Block form - If True then Statement, ElseIf, Else, EndIf
<<<<Requiring "EndIf"

The second forms appears plentifully in Code compared to the first. Is
there a "rule"
which directs you to apply #1 versus #2?

TIA,

"Arvi Laanemets" wrote in message
...
Hi

If has 2 possible syntaxes. From MS Visual Basic Help:
If condition Then [statements] [Else elsestatements]

Or, you can use the block form syntax:

If condition Then
[statements]

[ElseIf condition-n Then
[elseifstatements] ...

[Else
[elsestatements]]

End If

In your example the single-line form is used. You probably got confused
because the command line was splitted.
If ThisWorkbook.Sheets("Sheet1").Range("A1").Value < True _
Then Cancel = True

is same as
If ThisWorkbook.Sheets("Sheet1").Range("A1").Value < True Then Cancel =
True


--
Arvi Laanemets
(Don't use my reply address - it's spam-trap)



"JMay" wrote in message
news:nEric.16454$VQ3.11320@lakeread06...
I thought there was this rule where if you use the "If" keyword
somewhere afterwards one had to follow-up with the "End If" phrase.
Obviously not. Maybe the rule only applies in a Standard module
and not a class module like below. Can someone clarify?
Thanks in advance..


Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Sheets("Sheet1").Range("A1").Value < True _
Then Cancel = True
End Sub