VBA COUNTIF
Le funzioni basate su criteri sono le regole di eccellenza nei calcoli. All'inizio dell'apprendimento di Excel, dobbiamo aver imparato il processo 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, CONTA.SE non è una funzione VBA; invece, è 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.
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 l'intervallo ("C3"). Valore.
Codice:
Sub Countif_Example1 () Intervallo ("C3"). Valore = End Sub

Passaggio 3: nella cella C3, applicando la funzione CONTA.SE VBA di Excel, stiamo cercando di arrivare al risultato. Quindi, per accedere alla funzione, dobbiamo prima utilizzare la classe 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 la sintassi esatta, 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 calcolare "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 prodotto come 4.
Se puoi vedere che il codice VBA ha restituito solo il risultato della formula, non conosciamo la procedura 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. Ad 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 di 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.