Tenho notado que, se você aplicar o método SpecialCells a um intervalo e, em seguida, indexar os elementos da coleção resultante, o que é retornado são todos os elementos do intervalo original, não do novo intervalo com base nos critérios SpecialCells .
Sub test()
Dim i As Range
Selection.SpecialCells(xlCellTypeConstants).Select
For Each i In Selection
Debug.Print i
Next
End Sub
Por exemplo, se você executar o código acima com base em um intervalo consistindo em uma constante, seguida por uma fórmula, seguida por uma constante e, em seguida, verificar os elementos de Seleção na janela Imediata, obterá os valores: 1, 2 3 (veja a imagem abaixo).
No entanto, se você percorrer a Seleção, os valores 1 e 3 serão retornados, conforme esperado (novamente, veja a imagem abaixo). Alguém sabe por que os valores retornados diferem em cada caso?