Compile Error: Block If without End if

  • Thread starter Thread starter blackmanofsteel40
  • Start date Start date
B

blackmanofsteel40

This is my first time using a Microsoft Excel Macro and I'm trying to
run the following code and keep getting the:

Compile Error: Block If without End if message and I can't figure out
why


Sub P()
'
' Macro1 Macro
' Changing FedEx Descriptions
'
' Keyboard Shortcut: Ctrl+Shift+X
'
If Range("K2:K999").Select = "02" Then


Range("M2:M999").Select = "FedEx Ground"
Else


If Range("K2:K999").Select = "03" Then
Range("M2:M999").Select = "FedEx 2Day"


Else


If Range("K2:K999").Select = "" Then
Range("M2:M999").Select = ""


End If
End Sub
 
Hi,

There is no need for a macro ...
just copy this formula from K2 to K999
=IF(K2="02","FedEx Ground",IF(K2="03","FedEx 2Day",""))

HTH
Cheers
Carim
 
If Range("K2:K999").value = "02" Then
Range("M2:M999").value = "FedEx Ground"
ElseIf Range("K2:K999").Select = "03" Then
Range("M2:M999").value = "FedEx 2Day"
ElseIf Range("K2:K999").value = "" Then
Range("M2:M999").value = ""
End If
 
This will compile correctly, but des not make much sense to me...
Can you explain what you're trying to do?

'-----------------------------------------------------
Sub P()
'
' Macro1 Macro
' Changing FedEx Descriptions
'
' Keyboard Shortcut: Ctrl+Shift+X
'
If Range("K2:K999").Select = "02" Then
Range("M2:M999").Select = "FedEx Ground"
ElseIf Range("K2:K999").Select = "03" Then
Range("M2:M999").Select = "FedEx 2Day"
ElseIf Range("K2:K999").Select = "" Then
Range("M2:M999").Select = ""
End If
End Sub

'-----------------------------------------------------
HTH
 
You're missing and End If to pair up with the line

If Range("K2:K999").Select = "" Then

If you properly indent your code, missing End Ifs (and other End
statements like End With, End Select) are very easy to find. Get
into the habit of properly indenting your code.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
Thanks for your explanations.
This is no VBA job (too slow)
You'd rather enter the following formula into M2 et copy it down to M999:

=IF(K2=2;"FedEx Ground;IF(K2=3,"FedEx 2Day","")

HTH
 
Thanks for your explanations.
This is no VBA job (too slow)
You'd rather enter the following formula into M2 et copy it down to M999:

=IF(K2=2;"FedEx Ground;IF(K2=3,"FedEx 2Day","")

HTH
 
Range("M2:M999").Formula = "=IF(K2=2,""FedEx Ground"",IF(K2=3,""FedEx
2Day"","""")"

so combining the suggestion with VBA can often be very fast.
 
I've chastised him properly in that other thread <vbg>.

What's the difference between a multiposter and a catfish?

One is a bottom feeder; the other is a fish.

(or something like that with bosses/lawyers/etc....)
 
I've chastised him properly in that other thread <vbg>.

It's good to know the streets are safe again! We all owe you a debt of
graditude.
(faintly in the background: "Who was that masked man?" . . . "Why that
was the Loooone Ranger" . . . )
 
I prefer to think of myself more of the Jack Webb, er, Sgt. Joe Friday kind of
guy.

That should annoy the young and the non-USA centric.

Tom said:
I've chastised him properly in that other thread <vbg>.

It's good to know the streets are safe again! We all owe you a debt of
graditude.
(faintly in the background: "Who was that masked man?" . . . "Why that
was the Loooone Ranger" . . . )
 
Back
Top