В чем разница между Range.Columns и Range.EntireColumn - PullRequest
5 голосов
/ 17 июня 2010
Dim r as Range
Set r = Range("C2:D3")

Dim r1 as Range, r2 as Range
Set r1 = r.EntireColumn
Set r2 = r.Columns

Не представляют ли оба диапазона диапазон "C: D"?В чем разница между двумя?

1 Ответ

7 голосов
/ 17 июня 2010

Нет, Весь столбец представляет диапазон «C: D», Столбцы представляют столбцы ячеек в диапазоне. Если вы хотите увидеть это в действии, вот небольшой саб, который показывает это. Поместите ненулевые значения во весь диапазон C2: D3, затем поместите некоторые в C5 и D5. Значения в C5 и D5 не будут меняться вместе с Columns (range1), теперь замените FullColumn (range2) и посмотрите, что произойдет.

Sub Test()

Dim range1 As Range
Dim range2 As Range

    Set range1 = Range("C2:D3").Columns
    Set range2 = Range("C2:D3").EntireColumn

    range1.Value = 0

End Sub

Кроме того, Columns индексируется, так что вы можете ссылаться на первый столбец как:

r.Columns(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...