Sub ddd()
Dim x As Range
Set x = Range("A1:D4").Columns(4)
MsgBox TypeName(x) & " - " & x.Address & " - " & x.Count
End Sub
Возвращает: Range - $D$1:$D$4 - 1
Почему? Если Range("A1:D4").Columns(4) это Range и если его адрес D1:D4, то его Count должен быть равно 4. Ведь Msgbox Range("D1:D4").Count вернёт 4. ?
В дополнение к предыдущим разъяснениям (для себя, в первую очередь). Согласно документации Range.Count возвращает число элементов коллекции. Следующий текст покажет эти элементы:
Код
Sub test()
Dim rg1 As Range, rg2 As Range
Dim obj As Object
Set rg1 = Range(Cells(1, 1), Cells(4, 4))
Set rg2 = rg1.Columns(4)
Debug.Print "rg1 objects:"
For Each obj In rg1
Debug.Print obj.Address
Next obj
Debug.Print "rg2 objects:"
For Each obj In rg2
Debug.Print obj.Address
Next obj
End Sub