VBA COUNTIF

VBA COUNTIF

Le funzioni basate su criteri sono le regole di Excel nei calcoli. All'inizio dell'apprendimento di Excel, dobbiamo aver imparato la funzione COUTNIF in Excel. Nei nostri articoli precedenti, ti abbiamo mostrato come lavorare con la funzione CONTA.SE in Excel VBA.

Fare riferimento al nostro articolo sulla formula CONTA.SE in Excel per conoscere le basi della funzione CONTA.SE in Excel VBA. In questo articolo, ti mostreremo come utilizzare la stessa funzione nella codifica VBA. Ora vedremo la stessa formula in VBA. Per prima cosa COUNTIF non è una funzione VBA, piuttosto è una funzione del foglio di lavoro a cui è possibile accedere dalla classe della funzione del foglio di lavoro.

Esempio di funzione Countif VBA di Excel

Ok, vediamo il semplice esempio.

Puoi scaricare questo modello Excel della funzione Countif VBA qui - Modello Excel della funzione Countif VBA

Guarda lo stesso esempio di conteggio dei valori dal lotto.

Nell'immagine sopra, abbiamo i nomi delle città dalla cella A1 alla A10. Nella cella C3 dobbiamo contare quante volte il nome della città "Bangalore" appare nell'intervallo da A1 a A10.

Ok, segui i passaggi seguenti per scrivere il codice per applicare la funzione CONTA.SE.

Passaggio 1: avviare la procedura Sub.

Codice:

 Opzione Explicit Sub Countif_Example1 () End Sub 

Passaggio 2: poiché è necessario memorizzare il risultato nella cella C3, avviare il codice come intervallo ("C3").

Codice:

 Sub Countif_Example1 () Intervallo ("C3"). Valore = End Sub 

Passaggio 3: nella cella C3 applicando la funzione Excel VBA CONTA.SE stiamo cercando di arrivare al risultato. Quindi per accedere alla funzione dobbiamo prima utilizzare la classe della funzione foglio di lavoro.

Codice:

Sub Countif_Example1 () Intervallo ("C3"). Value = WorksheetFunction. End Sub

Passaggio 4: dalla funzione EXCEL VBA COUNTIF persa selezionare.

Codice:

 Sub Countif_Example1 () Intervallo ("C3"). Value = WorksheetFunction.CountIf (End Sub 

Passaggio 5: se guardi i parametri della funzione CONTA.SE VBA non vediamo il parametro come vediamo nel foglio di lavoro.

Come possiamo vedere nell'immagine sopra nel foglio di lavoro, abbiamo una sintassi chiara ma in VBA possiamo vedere solo Arg 1 e Arg 2.

Arg 1 è Range, quindi seleziona l'intervallo da A1 a A10.

Codice:

 Sub Countif_Example1 () Range ("C3"). Value = WorksheetFunction.CountIf (Range ("A1: A10"), End Sub 

Passaggio 6: Arg 2 è il valore di cui abbiamo bisogno per contare dall'intervallo A1 ad A10. In questo esempio, dobbiamo contare "Bangalore".

Codice:

 Sub Countif_Example1 () Range ("C3"). Value = WorksheetFunction.CountIf (Range ("A1: A10"), "Bangalore") End Sub 

Ok, abbiamo finito.

Esegui il codice per vedere il risultato nella cella C3.

Abbiamo ottenuto il risultato come 4. Poiché il nome della città "Bangalore" che appare nella cella A1, A4, A7 e A10, la funzione CONTA.SE VBA ha restituito il risultato come 4.

Se puoi vedere che il codice VBA ha restituito solo il risultato della formula, non possiamo vedere la formula nella barra della formula.

Per arrivare alla formula dobbiamo scrivere il codice in modo leggermente diverso. Di seguito è riportato il codice per applicare la formula stessa alla cella.

Codice:

 Sub Countif_Example1 () Range ("C3"). Formula = "= CountIf (A1: A10," "Bangalore" ")" End Sub 

Questo applicherà la formula alla cella C3.

Ottieni risultati con variabili

Le variabili sono parte integrante di qualsiasi linguaggio di codifica. Dobbiamo dichiarare le variabili per funzionare in modo efficiente con il codice VBA. Per un esempio, guarda il codice seguente.

Codice:

 Sub Countif_Example2 () Dim ValuesRange As Range Dim ResultCell As Range Dim CriteriaValue As String Set ValuesRange = Range ("A1: A10") Set ResultCell = Range ("C3") CriteriaValue = "Bangalore" ResultCell = WorksheetFunction.CountIf (ValuesRange, CriteriaValue ) End Sub 

Fammi decodificare il codice per farti capire meglio.

Per prima cosa ho dichiarato le due variabili come Range.

Dim ValuesRange As Range: serve per fare riferimento all'elenco dei valori.

Dim ResultCell As Range: questo per fare riferimento alla cella del risultato.

Quindi ho impostato l'intervallo di riferimenti a entrambe le variabili.

Set ValuesRange = Range ("A1: A10"): Questo è l'intervallo in cui sono presenti tutti i nomi delle città.

Set ResultCell = Range ("C3"): In questa cella, memorizzeremo il risultato della funzione COUNTIF.

Nel frattempo, ho dichiarato un'altra variabile per memorizzare il valore dei criteri.

Dim CriteriaValue As String

CriteriaValue = "Bangalore"

Quindi ora la variabile "CriteteriaValue" contiene il valore "Bangalore".

Nella riga successiva, come al solito, ho applicato la funzione COUTNIF.

ResultCell = WorksheetFunction.CountIf (ValuesRange, CriteriaValue)

In questo modo, possiamo applicare la funzione CONTA.SE in Excel VBA per soddisfare le nostre esigenze.