Свойство Range.Columns (Excel)
Возвращает объект Range , представляющий столбцы в указанном диапазоне.
Синтаксис
expression. Столбцы
выражение: переменная, представляющая объект Range.
Замечания
Чтобы вернуть один столбец, используйте свойство Item или аналогично включите индекс в круглые скобки. Например, и Selection.Columns(1)
возвращают Selection.Columns.Item(1)
первый столбец выделенного фрагмента.
При применении к объекту Range , который является выделенным с несколькими областями, это свойство возвращает столбцы только из первой области диапазона. Например, если объект Range имеет две области — A1:B2 и C3:D4, возвращаетSelection.Columns.Count
значение 2, а не 4. Чтобы использовать это свойство в диапазоне, который может содержать выбор из нескольких областей, проверьте Areas.Count
, содержит ли диапазон несколько областей. Если это так, выполните цикл по каждой области в диапазоне.
Возвращаемый диапазон может находиться за пределами указанного диапазона. Например, Range("A1:B2").Columns(5).Select
возвращает ячейки E1:E2.
Если буква используется в качестве индекса, она эквивалентна числу. Например, Range("B1:C10").Columns("B").Select
возвращает ячейки C1:C10, а не ячейки B1:B10. В примере "B" эквивалентно 2.
Использование свойства Columns без квалификатора объекта эквивалентно использованию ActiveSheet.Columns
. Дополнительные сведения см. в свойстве Worksheet.Columns .
Пример
В этом примере для каждой ячейки в столбце один в диапазоне с именем myRange задается значение 0 (ноль).
Range("myRange").Columns(1).Value = 0
В этом примере отображается количество столбцов в выделенном фрагменте на листе Sheet1. Если выбрано несколько областей, в примере выполняется цикл по каждой области.
Public Sub ShowNumberOfColumnsInSheet1Selection
Worksheets("Sheet1").Activate
Dim selectedRange As Excel.Range
Set selectedRange = Selection
Dim areaCount As Long
areaCount = Selection.Areas.Count
If areaCount <= 1 Then
MsgBox "The selection contains " & _
Selection.Columns.Count & " columns."
Else
Dim areaIndex As Long
areaIndex = 1
For Each area In Selection.Areas
MsgBox "Area " & areaIndex & " of the selection contains " & _
area.Columns.Count & " columns."
areaIndex = areaIndex + 1
Next
End If
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.