Contar columnas en VBA

Iqra Hasnain 30 enero 2023
  1. Contar columnas en VBA
  2. Contar columna en rango en VBA
  3. Use el método Range().End en VBA
  4. Utilice el método Cells.Find() en VBA
Contar columnas en VBA

Este artículo discutirá dos formas de contar fácilmente columnas con datos usando VBA en Excel.

Contar columnas en VBA

Cuando tenemos una tabla de datos pequeña con pocas columnas, podemos contarlas fácilmente, pero es bastante difícil para una tabla de datos grande contar todas las columnas sin ningún error. Además de eso, algunas columnas pueden contener datos, mientras que algunas columnas pueden estar completamente en blanco.

Por lo tanto, contar todas las columnas con datos en el caso de una tabla de datos grande es bastante difícil. Ahora, creemos una hoja con algunos datos de muestra para trabajar.

creando hoja para contar columnas en VBA

Podemos ver las tres columnas en la siguiente tabla de datos. Para controlar la cantidad de columnas utilizadas en una sola hoja de cálculo de Excel, utilizaremos códigos VBA.

Primero, abrimos el editor de VBA presionando la tecla ALT + F11. Después de eso, crea un nuevo módulo desde Insert > Module.

creando una nueva macro para contar columnas en VBA

Luego, crea un nuevo sub, usedColumns(). Dentro de nuestro nuevo sub, usaremos un bucle with para obtener el rango usado usando el método UsedRange.

Después de eso, usamos el método de conteo de columns para mostrar el número de columnas usadas.

Código de ejemplo:

# VBA
Sub usedColumns()
With Sheet1.UsedRange
MsgBox "The Used Columns are: "& .Columns.Count
End With
End Sub

Guarde la macro y ejecútela presionando F5 o haciendo clic en ejecutar. El cuadro de diálogo Macro aparecerá como se muestra a continuación.

Producción:

contar columnas en VBA usando With loop

Contar columna en rango en VBA

El siguiente código de VBA cuenta todas las columnas con datos en un rango determinado.

Vamos a crear un nuevo sub ColumnsInRange(). Dentro de este sub, usaremos la función de rango para seleccionar y contar el número de columnas en ese rango.

Código de ejemplo:

# VBA
Sub ColumnsInRange()
Dim newRange As Worksheet
Set newRange = Worksheets("Sheet1")
MsgBox "The Used Columns are: " & newRange.Range("A15:D15").Columns.Count
End Sub

Producción:

cuenta todas las columnas con datos en un rango dado

Use el método Range().End en VBA

Podemos usar el método Range().End para obtener la última columna utilizada en ese rango.

Cree un nuevo sub, findLastColumn(), y dentro de ese sub, usaremos el método de rango End para encontrar la última columna utilizada hacia el lado derecho de la hoja.

# VBA

Sub findLastColumn()
Dim newRange As Integer
newRange = Range("A2").End(xlToRight).Column
MsgBox newRange
End Sub

Producción:

cuente las columnas en la última columna de VBA que se usa hacia la derecha de la hoja usando el método End

Obtenemos el último número de columna en un cuadro de diálogo emergente, como en la imagen que se muestra arriba.

Utilice el método Cells.Find() en VBA

También podemos usar el método Range.Find para obtener la última columna utilizada de la hoja usando el código VBA.

Compruebe el siguiente código. En el sub LastColumnByFind(), usamos el método Cells.Find() para encontrar la última columna utilizada.

Código de ejemplo:

# VBA
Sub LastColumnByFind()
Dim newRange As Long
    newRange = Cells.Find(What:="*", _
                    After:=Range("A1"), _
                    LookAt:=xlPart, _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlPrevious, _
                    MatchCase:=False).Column
    MsgBox "Last Used Column Number by Find Method: " & newRange
End Sub

Producción:

contar columnas en VBA usando el método Find

Artículo relacionado - VBA Column