Función Excel VBA COUNTA

Es posible que haya utilizado a menudo las funciones COUNT y COUNTA en Microsoft Excel. Donde COUNT captura todos los valores numéricos en una celda, COUNTA captura todas las celdas no vacías (incluidas las cadenas). ¿De alguna manera es posible usar la función COUNTA a través de VBA? ¡Absolutamente sí! Puede usar la función COUNTA a través de VBA como una función de hoja de trabajo (ya que es parte de la familia de WorksheetFunction dentro de VBA) para contar las celdas no vacías a través de un rango de hoja de trabajo dado. El beneficio de la función COUNTA sobre COUNT es que puede contar cualquier cosa (números, cadenas, caracteres especiales, valores de error, etc.) excepto las celdas vacías en un rango dado, mientras que COUNT solo puede contar el número de celdas que consisten en valores numéricos .

VBA COUNTA Sintaxis:

La sintaxis para la función VBA COUNTA es la siguiente:

Dónde,

Arg1: especifica el argumento para esta función que es obligatorio y puede tomar cualquier valor no vacío, como número, cadena, valores de error (como # N / A, # DIV / 0!), Caracteres especiales, etc. Opcional.

Esta función puede tomar un máximo de 30 argumentos en una sola llamada. Un argumento puede consistir en un rango de celdas o un solo valor que se ingresa manualmente.

¿Cómo usar la función COUNTA en Excel VBA?

A continuación se muestran los diferentes ejemplos para usar la función COUNTA en Excel usando el código VBA.

Puede descargar esta plantilla Excel VBA COUNTA aquí - Plantilla Excel VBA COUNTA

Ejemplo # 1 - VBA COUNTA con argumentos manuales como entrada

Veremos cómo funciona la función COUNTA cuando le proporcionemos argumentos manuales en VBA. Siga los pasos mencionados a continuación:

Paso 1: inserte un nuevo módulo en Visual Basic Editor (VBE). Haga clic en la pestaña Insertar > seleccione Módulo.

Paso 2: defina un nuevo subprocedimiento dentro del módulo recién insertado, que puede contener su macro.

Código:

 Sub Ejemplo_1 () End Sub 

Paso 3: Decide dónde queremos almacenar la salida para la función COUNTA. Quiero almacenarlo en la celda A2 de la hoja llamada " Ejemplo 1 ". Para hacer eso, necesitamos usar el método Sheets.Range en VBA. Vea la siguiente captura de pantalla para su referencia:

Código:

 Sub Ejemplo_1 () Hojas ("Ejemplo 1"). Rango ("A2") Fin Sub 

Este fragmento de código selecciona la celda A2 como un rango de la hoja denominada Ejemplo 1.

Paso 4: Use un operador de asignación para que podamos asignar el valor a la celda a la que se accederá a través del código anterior. Agregue el objeto llamado WorksheetFunction para que podamos acceder a la función COUNTA debajo de él.

Código:

 Sub Ejemplo_1 () Hojas ("Ejemplo 1"). Rango ("A2") = Hoja de trabajo Función Fin Sub 

Paso 5: Pon un punto (.) Después del objeto especificado y verás una lista de funciones disponibles para usar debajo de él. Seleccione COUNTA de la lista de múltiples funciones disponibles que le permite contar las celdas o valores no vacíos.

Paso 6: especifique los argumentos manualmente en la función COUNTA. Los argumentos son: "Rajnish", "# N / A", 1, "*", True. Hemos tratado de traer todos los tipos de datos como argumento para esta función.

Código:

 Sub Ejemplo_1 () Hojas ("Ejemplo 1"). Range ("A2") = WorksheetFunction.CountA ("Rajnish", "# N / A", 1, "*", True) End Sub 

Paso 7: Ejecute este código presionando F5 o el botón Ejecutar y vea el resultado en la celda A2 de la hoja " Ejemplo 1 " en el libro de trabajo activo.

En este código, queremos que el sistema cuente los argumentos de entrada y almacene el recuento en la celda A2 de la hoja Ejemplo 1.

Ejemplo # 2 - VBA COUNTA para contar celdas no vacías en un rango dado

Supongamos que tengo datos en toda la columna A y necesito contar cuáles son las filas no vacías en toda la columna. Como la columna completa consta de más de 10 filas de Lac, es un tiempo ideal para mí navegar y contar cada celda no vacía. Vea la captura de pantalla parcial de los datos a continuación.

Siga los pasos a continuación:

Paso 1: defina un nuevo subprocedimiento que pueda contener su macro.

Código:

 Sub Ejemplo_2 () End Sub 

Paso 2: Defina dos nuevas variables bajo este subprocedimiento como un Rango usando Dim . Una variable será útil para mantener el rango de la columna del argumento de entrada y otras variables serán útiles para mantener la celda donde queremos que la salida sea un número contado.

Código:

 Sub Ejemplo_2 () Dim rng_1 Como Rango Dim op_cell Como Rango Fin Sub 

Aquí, rng_1 almacenará el rango de entrada para la función COUNTA. La salida de COUNTA se almacenará en la variable op_cell .

Paso 3: Ahora, establezca el rango para ambas variables usando la propiedad VBA Set. Esto se debe hacer porque no podemos asignar directamente un valor a una variable definida como un objeto de rango.

Código:

 Sub Ejemplo_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") End Sub 

Aquí, la variable rng_1 se ha establecido en el rango de toda la columna denominada A. op_cell se establece en la celda B1, ya que sería la celda que contiene la salida del COUNTA.

Paso 4: Ahora, use el operador de asignación general contra la variable op_cell, para que podamos almacenar la salida debajo de la celda que se establece en esa variable. Esto puede considerarse como una inicialización de salida.

Código:

 Sub Ejemplo_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = End Sub 

Paso 5: Use el objeto WorksheetFunction en el lado derecho del operador de asignación (sería una expresión que se evaluará y el valor se almacenará en el conjunto de celdas en la variable op_cell) para inicializar la clase dentro de la cual podemos acceder y usar Función COUNTA.

Código:

 Sub Ejemplo_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = WorksheetFunction End Sub 

Paso 6: Tan pronto como presione el punto (.) Después del objeto WorksheetFunction, puede acceder a todas las funciones disponibles en esa clase. Navegue hacia la función COUNTA y haga doble clic para seleccionar.

Paso 7: Use la variable rng_1 como argumento de entrada en COUNTA. Por lo tanto, esta función en la clase de objeto de función de hoja de cálculo puede contar las celdas no vacías presentes en toda la columna A.

Código:

 Sub Ejemplo_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = WorksheetFunction.CountA (rng_1) End Sub 

Paso 8: ejecute este código presionando el botón F5 o Ejecutar y podrá ver el resultado como se muestra a continuación en la celda B1 de una hoja activa del libro.

En la celda B1 podemos ver un número como 17. Lo que significa que tenemos 17 celdas no vacías presentes en la columna A de la hoja de trabajo. Es posible que no vea en absoluto el 17 a través de esta captura de pantalla, ya que es parcial. Es mejor que vea la hoja de trabajo y navegue por la columna A.

Cosas para recordar

  • Puede usar la función VBA COUNTA cuando tiene que contar el número de celdas no vacías presentes en el rango dado.
  • COUNTA considera todos los valores como números, cadenas, valores de error, booleanos, texto vacío (""). Sin embargo, no considera la celda que está vacía.
  • Las celdas vacías no se contarán con la función COUNTA y se ignorarán.
  • Puede usar argumentos manualmente en la función VBA COUNTA y aún funciona.

Artículos recomendados

Esta es una guía de la función VBA COUNTA. Aquí discutimos cómo usar la función COUNTA en Excel VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. ¿Cómo crear un objeto de colección en VBA?
  2. ¿Cómo contar caracteres en Excel?
  3. FileCopy en VBA (Ejemplos con plantilla de Excel)
  4. Contar celdas con texto en Excel | Plantilla de Excel

Categoría: