Contar columnas en VBA
- Contar columnas en VBA
- Contar columna en rango en VBA
-
Use el método
Range().End
en VBA -
Utilice el método
Cells.Find()
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.
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
.
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 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:
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:
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: