Diferença no tipo entre usar e não usar Definir palavra-chave

Acabei de resolver um problema que eu estava tendo colocando a palavra-chave "Set" em uma linha de definição, mas o que eu gostaria de saber é "por que"?

Basicamente, estou fazendo isso:

Dim startCell, iCell as Range
For Each iCell in Range(whatever)
    If iCell.value <>"" Then
        Set startCell = Cells(iCell.Row + 1, iCell.Column)
    End If
Next iCell

Se eu omitir a palavra-chave "Set", o código ainda compila bem, mas na janela de variáveis ​​locais, vejo quetipo muda para "String" em vez de "Variant / Object / Range". Por que isso aconteceria?

questionAnswers(3)

yourAnswerToTheQuestion