Thread: End if w/o if?
View Single Post
  #20   Report Post  
Posted to microsoft.public.excel.programming
Charlie Charlie is offline
external usenet poster
 
Posts: 703
Default End if w/o if?

Yes, the Case statement is best when there's a multitude of ElseIf's.

As I said, it's a personal style thing, considering that either way is
logically correct.


"Bob Phillips" wrote:

Well we are completely at odds. The lack of clarity comes when you have
single line Ifs and Multi line Ifs combined, as you lose some of the power
of indenting then.

I don't have indenting problems, because I indent. And I use ElseIf
liberally, it makes logical sense, and it avoids a myriad of indents in
those cases. Of course, I am just as likely to use Case statements, but I
would never rule out ElseIf. There is one End If per If, just an unlimited
number of ElseIf.

Bob


"Charlie" wrote in message
...
I agree with Don. Single-line If's save space and there's no lack of

clarity
to me. I only indent the If -- Then -- Else -- End If constructs. Your
indenting problems MAY be due to ElseIf's. Those I avoid like the plague.
They are difficult to balance and indent (not one End If per If) But

these
are just personal style preferences.

"Bob Phillips" wrote:

I avoid them like the plague Don, spent too much wasted time trying to

line
up Ifs ... End Ifs. I think the lack of clarity and potential

maintenance
overhead dwarfs the initial effort.

The only time I use anything like that is with Iif.

Regards

Bob

"Don Guillett" wrote in message
...
I use single line ifs much of the time

--
Don Guillett
SalesAid Software

"Toppers" wrote in message
...
Agreed!

"Bob Phillips" wrote:

I see your point. As I say, you should indent Ifs, and don't use
single
line
Ifs, it all gets too confusing.

Bob

"Toppers" wrote in message
...
But it could be End If to If Not TopCell Is Nothing which
admittedly
could
come before If .name as per Don's reply. Both are valid I

think.

"Bob Phillips" wrote:

No, he has a line continuation, so no End If needed.

--
HTH

Bob Phillips

"Toppers" wrote in message
...
Hi,

If .Name Like "*[##]" Then _
.Name = Left(.Name, Len(.Name) - 2)
End If ...... Missing here

HTh

"davegb" wrote:

I've combined 2 macros that I got help writing here.
Sub AllSheetsToggleProtectWInd()
'for all sheets in currently active workbook, assigned

to
button
Dim TopCell As Range
Dim TopCol As Range
Dim Cols2Hide As Range
Dim wkSht As Worksheet

For Each wkSht In ActiveWorkbook.Worksheets
With wkSht
If .ProtectContents Then
.Unprotect Password:=PWORD
.Name = .Name & "##"
.Columns.Hidden = False
Else
Set TopCell = .Rows(3).Find(What:="top",
LookIn:=xlValues)
If Not TopCell Is Nothing Then ' if it

found
"top"
Set TopCol = .Columns(TopCell.Column)
Set Cols2Hide = .Range(TopCol,

..Columns("AC"))
Cols2Hide.Hidden = True
.Protect Password:=PWORD
If .Name Like "*[##]" Then _
.Name = Left(.Name, Len(.Name) - 2)

End If
End With<-----[end with without with error]

Next wkSht

End Sub


But when I run it, I get an error of "End with without

if",
even
though
there's very clearly a "with wksht" statement at the top.

If I
remark
out the End with, I get a "Next without For" error, even
though
there's
a "For" statement. So any ideas on why VBA can't see my

with
or
For
each statements?
Thanks in advance.