Compile Error: Block If without End if

  • Thread starter blackmanofsteel40
  • 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
 
C

Carim

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
 
B

BadgerMK

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
 
A

Ardus Petus

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
 
C

Chip Pearson

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
 
A

Ardus Petus

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
 
A

Ardus Petus

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
 
T

Tom Ogilvy

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.
 
D

Dave Peterson

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....)
 
T

Tom Ogilvy

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" . . . )
 
D

Dave Peterson

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" . . . )
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top