Excel VBA: Run-time error '91' on second assignment to Object variable
<p>I am just learning Excel VBA for a school assignment. I have assigned an Object "wtCell" to be a certain cell in a certain worksheet based on some conditions.</p>

<p>Error: "Object variable or With block variable not set"</p>

<p>I am getting an error on the <em>second</em> assignment of "wtCell"</p>

<pre><code>Sub AddWardData()

   Dim Cell As Object
   Dim Ward As Object

    Dim lngLastRow As Long ' We need to know how many rows of data are in Column J
    lngLastRow = 0
    lngLastRow = Range("K" &amp; Rows.Count).End(xlUp).Row ' Complex formula - just ignore the details for now
    Dim w As Integer ' ward number
    w = 0
    Dim wtCell As Object

    For Each Cell In Worksheets("Data").Range("K2:K" &amp; lngLastRow).Cells ' Iterate thru the cells collection in Row K = a copy
        w = Val(Mid(Cell.Value, 6, 2))
        If (w = 0) Then
            Cell.Offset(0, 3).Value = ""
            Cell.Offset(0, 4).Value = ""
            Cell.Offset(0, 5).Value = ""
            GoTo no_ward
        End If
        For Each Ward In Worksheets("WardData").Range("B4:B46").Cells
            If (Ward.Value = w) Then
                Cell.Offset(0, 3).Value = Ward.Offset(0, 4) ' 2015 ward population
                Cell.Offset(0, 4).Value = Ward.Offset(0, 6) ' ward area
                Cell.Offset(0, 5).Value = Ward.Offset(0, 10) ' 2015 ward pop density
                GoTo ward_data_retrieved
            End If
ward_data_retrieved:
        Next
no_ward:
        If (Application.CountIf(Worksheets("WardData").Range("B5:B16").Cells, w)) Then
            Cell.Offset(0, 6).Value = "Urban"
            Cell.Offset(0, 7).Value = "Urban"
            wtCell = Worksheets("WardData").Range("F18") ' total population for ward type
            Cell.Offset(0, 8).Value = wtCell.Value
            Cell.Offset(0, 9).Value = wtCell.Offset(0, 2).Value ' total area for ward type
            Cell.Offset(0, 10).Value = wtCell.Offset(0, 6).Value ' avg density for ward type
            Cell.Offset(0, 11).Value = wtCell.Value
            Cell.Offset(0, 12).Value = wtCell.Offset(0, 2).Value ' total area for ward type
            Cell.Offset(0, 13).Value = wtCell.Offset(0, 6).Value ' avg density for ward type
        ElseIf (Application.CountIf(Worksheets("WardData").Range("B21:B36").Cells, w)) Then
            Cell.Offset(0, 6).Value = "Suburban"
            wtCell = Worksheets("WardData").Range("F39") ' total population for ward type
            Cell.Offset(0, 8).Value = wtCell.Value
            Cell.Offset(0, 9).Value = wtCell.Offset(0, 2).Value ' total area for ward type
            Cell.Offset(0, 10).Value = wtCell.Offset(0, 6).Value ' avg density for ward type
            If (Application.CountIf(Worksheets("WardData").Range("B22:B23").Cells, w)) Then
                Cell.Offset(0, 7).Value = "OESA"
                wtCell = Worksheets("WardData").Range("F24") ' total population for ward type
                Cell.Offset(0, 11).Value = wtCell.Value
                Cell.Offset(0, 12).Value = wtCell.Offset(0, 2).Value ' total area for ward type
                Cell.Offset(0, 13).Value = wtCell.Offset(0, 6).Value ' avg density for ward type
            ElseIf (Application.CountIf(Worksheets("WardData").Range("B28:B29").Cells, w)) Then
                Cell.Offset(0, 7).Value = "RRSA"
                wtCell = Worksheets("WardData").Range("F30") ' total population for ward type
                Cell.Offset(0, 11).Value = wtCell.Value
                Cell.Offset(0, 12).Value = wtCell.Offset(0, 2).Value ' total area for ward type
                Cell.Offset(0, 13).Value = wtCell.Offset(0, 6).Value ' avg density for ward type
            ElseIf (Application.CountIf(Worksheets("WardData").Range("B34:B36").Cells, w)) Then
                Cell.Offset(0, 7).Value = "KSSA"
                wtCell = Worksheets("WardData").Range("F37") ' total population for ward type
                Cell.Offset(0, 11).Value = wtCell.Value
                Cell.Offset(0, 12).Value = wtCell.Offset(0, 2).Value ' total area for ward type
                Cell.Offset(0, 13).Value = wtCell.Offset(0, 6).Value ' avg density for ward type
            End If
        ElseIf (Application.CountIf(Worksheets("WardData").Range("B41:B46").Cells, w)) Then
            wtCell = Worksheets("WardData").Range("F46") ' total population for ward type
            Cell.Offset(0, 8).Value = wtCell.Value
            Cell.Offset(0, 9).Value = wtCell.Offset(0, 2).Value ' total area for ward type
            Cell.Offset(0, 10).Value = wtCell.Offset(0, 6).Value ' avg density for ward type
            Cell.Offset(0, 11).Value = wtCell.Value
            Cell.Offset(0, 12).Value = wtCell.Offset(0, 2).Value ' total area for ward type
            Cell.Offset(0, 13).Value = wtCell.Offset(0, 6).Value ' avg density for ward type
            Cell.Offset(0, 6).Value = "Rural"
            Cell.Offset(0, 7).Value = "Rural"
        End If
    Next

End Sub
</code></pre>

<p>I can't figure out how to get a bold line in the code, but it is this line:</p>

<p><code>wtCell = Worksheets("WardData").Range("F39") ' total population for ward type</code></p>

<p>that gets highlighted by the debugger (under the first ElseIf). I would really appreciate any help.</p>