Propiedad Range.Columns (Excel)

Devuelve un objeto Range que representa las columnas del rango especificado.

Sintaxis

expresión. Columnas

expresión Variable que representa un objeto Range.

Comentarios

Para devolver una sola columna, use la propiedad Item o incluya de forma equivalente un índice entre paréntesis. Por ejemplo, y Selection.Columns(1)Selection.Columns.Item(1) devuelven la primera columna de la selección.

Cuando se aplica a un objeto Range que es una selección de varias áreas, esta propiedad devuelve columnas solo del primer área del intervalo. Por ejemplo, si el objeto Range tiene dos áreas(A1:B2 y C3:D4)Selection.Columns.Count devuelve 2, no 4. Para usar esta propiedad en un rango que puede contener una selección múltiple, pruebe Areas.Count para determinar si el rango contiene más de un área. Si es así, recorre cada área del rango.

Es posible que el rango devuelto esté fuera del rango especificado. Por ejemplo, Range("A1:B2").Columns(5).Select devuelve las celdas E1:E2.

Si se usa una letra como un índice, es equivalente a un número. Por ejemplo, Range("B1:C10").Columns("B").Select devuelve celdas C1: C10 y no las celdas B1: B10. En el ejemplo, "B" equivale a 2.

El uso de la propiedad Columns sin un calificador de objeto equivale a usar ActiveSheet.Columns. Para obtener más información, vea la propiedad Worksheet.Columns .

Ejemplo:

En este ejemplo se establece el valor de cada celda de la columna uno del rango denominado myRange en 0 (cero).

Range("myRange").Columns(1).Value = 0

En este ejemplo se muestra el número de columnas de la selección en la Hoja1. Si se ha seleccionado más de un área, el ejemplo ejecuta un bucle en cada área.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.