Свойство Range.Columns (Excel)

Возвращает объект Range , представляющий столбцы в указанном диапазоне.

Синтаксис

выражение. Столбцы

выражение: переменная, представляющая объект Range.

Примечания

Чтобы вернуть один столбец, используйте свойство Item или эквивалентно включите индекс в скобки. Например, оба Selection.Columns(1) и Selection.Columns.Item(1) возвращают первый столбец выделенного фрагмента.

При применении к объекту диапазона , который является выделением с несколькими областями, это свойство возвращает столбцы только из первой области диапазона. Например, если объект 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

В этом примере показано количество столбцов в выделенном фрагменте на листе Лист1. Если выбрано несколько областей, в примере будет выполняться циклическое прохождение через каждую из них.

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 и обратная связь.