Question: My goal is to message box the five largest values in a column. But because I am using ">" the values in the column before L are not counted for La or Lb for that matter. For example: 

```
7
8
5
3
6
2

```

L becomes `8`, but La (the second largest) becomes `6` (but should've been `7`), Lb (the third largest) becomes `2`, and Lc =`0`, Ld=`0`.

```
Sub maxtest3()

Dim L As Integer, La As Integer, Lb As Integer, Lc As Integer, Ld As Integer
Dim a As Variant
L = 0
La = 0
Lb = 0
Lc = 0
Ld = 0

For Each a In Range("A1:A20")
If a.Value > L Then
    L = a.Value
        Else
        If a.Value > La Then
        La = a.Value
            Else
            If a.Value > Lb Then
            Lb = a.Value
                Else
                If a.Value > Lc Then
                Lc = a.Value
                    Else
                    If a.Value > Ld Then
                    Ld = a.Value
                        Else
                    End If
                End If
            End If
        End If
    End If
Next
                MsgBox (L & " " & La & " " & Lb & " " & Lc & " " & Ld)
End Sub

```

I know whoever sees this has the ability to solve the problem with one line of code but, please, restrain yourself from doing so for the sake of educating a newbie.

Answer: 
```
Sub test()

Range("A1", "A6").Copy 'adjust the column you want to sort
Range("B1", "B6").PasteSpecial 'adjust to a free column

Columns("B").Sort key1:=Range("B1"), _ 'adjust
  order1:=xlDescending, Header:=xlNo

Dim i As Integer
Dim str As String

For i = 1 To 5

    str = str & " " & Cells(i, 2).Value 'adjust to the column you pasted too

Next

Range("B1", "B6").Clear 'adjust

MsgBox str

End Sub

```
Jeeped already explained the logic why your `If Block` attempt fails.   
On the other hand since you are using Excel, you can utilize available *functions*.  
Something like:

```
Sub maxtest3()
    Dim L As Integer, La As Integer, Lb As Integer, Lc As Integer, Ld As Integer

    With Application.WorksheetFunction
        L = .Large(Range("A1:A20"), 1)
       La = .Large(Range("A1:A20"), 2)
       Lb = .Large(Range("A1:A20"), 3)
       Lc = .Large(Range("A1:A20"), 4)
       Ld = .Large(Range("A1:A20"), 5)
    End With
    MsgBox (L & " " & La & " " & Lb & " " & Lc & " " & Ld)
End Sub

```