RECUENTO DE VBA

Este tutorial le mostrará cómo usar la función COUNT de Excel en VBA

La función VBA COUNT se usa para contar la cantidad de celdas en su hoja de trabajo que tienen valores en ellas. Se accede mediante el método WorksheetFunction en VBA.

COUNT Hoja de trabajo Función

El objeto WorksheetFunction se puede utilizar para llamar a la mayoría de las funciones de Excel que están disponibles en el cuadro de diálogo Insertar función en Excel. La función COUNT es una de ellas.

123 Sub TestCountFunctinoRange ("D33") = Application.WorksheetFunction.Count (Range ("D1: D32"))End Sub

Puede tener hasta 30 argumentos en la función COUNT. Cada uno de los argumentos debe hacer referencia a un rango de celdas.

Este ejemplo a continuación contará cuántas celdas están pobladas con valores en las celdas D1 a D9

123 Sub TestCount ()Rango ("D10") = Application.WorksheetFunction.Count (Range ("D1: D9"))End Sub

El siguiente ejemplo contará cuántos valores hay en un rango en la columna D y en un rango en la columna F. Si no escribe el objeto Aplicación, se asumirá.

123 Sub TestCountMultiple ()Rango ("G8") = WorksheetFunction.Count (Rango ("G2: G7"), Rango ("H2: H7"))End Sub

Asignar un resultado de recuento a una variable

Es posible que desee utilizar el resultado de su fórmula en otro lugar del código en lugar de escribirlo directamente en un rango de Excel. Si este es el caso, puede asignar el resultado a una variable para usar más adelante en su código.

1234567 Sub AssignCount ()Resultado atenuado como entero'Asignar la variableresultado = WorksheetFunction.Count (Range ("H2: H11"))'Muestra el resultadoMsgBox "La cantidad de celdas pobladas con valores es" & resultEnd Sub

COUNT con un objeto de rango

Puede asignar un grupo de celdas al objeto Range y luego usar ese objeto Range con el Hoja de trabajo Función objeto.

123456789 Sub TestCountRange ()Atenuar como rango'asignar el rango de celdasEstablecer rng = Rango ("G2: G7")'usa el rango en la fórmulaRango ("G8") = WorksheetFunction.Count (rng)'suelta el objeto de rangoEstablecer rng = NadaEnd Sub

COUNT objetos de rango múltiple

De manera similar, puede contar cuántas celdas están pobladas con valores en múltiples Objetos de rango.

123456789101112 Sub TestCountMultipleRanges ()Dim rngA como rangoDim rngB como rango'asignar el rango de celdasEstablecer rngA = Rango ("D2: D10")Establecer rngB = Rango ("E2: E10")'usa el rango en la fórmulaRango ("E11") = WorksheetFunction.Count (rngA, rngB)'suelta el objeto de rangoEstablecer rngA = NadaEstablecer rngB = NadaEnd Sub

Usando COUNTA

El recuento solo contará los VALORES en las celdas, no contará la celda si la celda tiene texto. Para contar las celdas que están pobladas con cualquier tipo de datos, necesitaríamos usar la función CONTAR.

123 Sub TestCountA ()Range ("B8) = Application.WorksheetFunction.CountA (Range (" B1: B6 "))End Sub

En el siguiente ejemplo, la función CONTAR devolvería un cero ya que no hay valores en la columna B, mientras que devolvería un 4 para la columna C. La función CONTAR, sin embargo, contaría las celdas con Texto en ellas y devolvería un valor de 5 en la columna B sin dejar de devolver un valor de 4 en la columna C.

Usando COUNTBLANKS

La función COUNTBLANKS solo contará las celdas en blanco en el rango de celdas, es decir, las celdas que no contienen ningún dato.

123 Sub TestCountBlank ()Range ("B8) = Application.WorksheetFunction.CountBlanks (Range (" B1: B6 "))End Sub

En el siguiente ejemplo, la columna B no tiene celdas en blanco, mientras que la columna C tiene una celda en blanco.

Uso de la función CONTAR.SI

Otra función de la hoja de trabajo que se puede utilizar es la función CONTAR.SI.

123456 Sub TestCountIf ()Rango ("H14") = WorksheetFunction.CountIf (Rango ("H2: H10"), "> 0")Rango ("H15") = WorksheetFunction.CountIf (Rango ("H2: H10"), "> 100")Rango ("H16") = WorksheetFunction.CountIf (Rango ("H2: H10"), "> 1000")Rango ("H17") = WorksheetFunction.CountIf (Rango ("H2: H10"), "> 10000")End Sub

El procedimiento anterior solo contará las celdas con valores si los criterios coinciden: mayor que 0, mayor que 100, mayor que 1000 y mayor que 10000. Debe poner los criterios entre comillas para que la fórmula funcione correctamente.

Desventajas de WorksheetFunction

Cuando usa el Hoja de trabajo Función para contar los valores en un rango en su hoja de trabajo, se devuelve un valor estático, no una fórmula flexible. Esto significa que cuando sus cifras en Excel cambian, el valor devuelto por el Hoja de trabajo Función no cambiará.

En el ejemplo anterior, el procedimiento TestCount ha contado las celdas de la columna H donde hay un valor. Como puede ver en la barra de fórmulas, este resultado es una cifra y no una fórmula.

Si alguno de los valores cambia por lo tanto en el rango (H2: H12), los resultados en H14 serán NO cambio.

En lugar de usar el Hoja de trabajo Función Cuenta, puede usar VBA para aplicar una función de conteo a una celda usando el Fórmula o Fórmula R1C1 métodos.

Usando el método de fórmula

El método de fórmula le permite apuntar específicamente a un rango de celdas, por ejemplo: H2: H12 como se muestra a continuación.

123 Sub TestCountFormulaRango ("H14"). Fórmula = "= Recuento (H2: H12)"End Sub

Usando el método FormulaR1C1

El método FromulaR1C1 es más flexible en el sentido de que no lo restringe a un rango establecido de celdas. El siguiente ejemplo nos dará la misma respuesta que el anterior.

123 Sub TestCountFormula ()Rango ("H14"). Fórmula = "= Recuento (R [-9] C: R [-1] C)"End Sub

Sin embargo, para hacer que la fórmula sea más flexible, podríamos modificar el código para que se vea así:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Recuento (R [-11] C: R [-1] C)"End Sub

Dondequiera que se encuentre en su hoja de trabajo, la fórmula contará los valores en las 12 celdas directamente arriba y colocará la respuesta en su ActiveCell. Se debe hacer referencia al rango dentro de la función COUNT utilizando la sintaxis de Fila (R) y Columna (C).

Ambos métodos le permiten utilizar fórmulas dinámicas de Excel dentro de VBA.

Ahora habrá una fórmula en H14 en lugar de un valor.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave