CONTE VBA

Questo tutorial ti mostrerà come utilizzare la funzione COUNT di Excel in VBA

La funzione VBA COUNT viene utilizzata per contare il numero di celle nel foglio di lavoro che contengono valori. Vi si accede utilizzando il metodo WorksheetFunction in VBA.

COUNT foglio di lavoroFunzione

L'oggetto WorksheetFunction può essere utilizzato per chiamare la maggior parte delle funzioni di Excel disponibili nella finestra di dialogo Inserisci funzione in Excel. La funzione COUNT è una di queste.

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

Puoi avere fino a 30 argomenti nella funzione COUNT. Ciascuno degli argomenti deve fare riferimento a un intervallo di celle.

Questo esempio di seguito conterà quante celle sono popolate con i valori nelle celle da D1 a D9

123 Conteggio test secondario()Range("D10") = Application.WorksheetFunction.Count(Range("D1:D9"))Fine sottotitolo

L'esempio seguente conterà quanti valori sono in un intervallo nella colonna D e in un intervallo nella colonna F. Se non si digita l'oggetto Application, verrà assunto.

123 Sub TestCountMultiplo()Range("G8") = WorksheetFunction.Count(Range("G2:G7"), Range("H2:H7"))Fine sottotitolo

Assegnazione di un risultato di conteggio a una variabile

Potresti voler utilizzare il risultato della tua formula altrove nel codice piuttosto che scriverlo direttamente in Excel Range. In questo caso, puoi assegnare il risultato a una variabile da utilizzare successivamente nel codice.

1234567 Sub AssignCount()Risultato debole come numero intero'Assegna la variabilerisultato = WorksheetFunction.Count(Range("H2:H11"))'Mostra il risultatoMsgBox "Il numero di celle popolate con i valori è " & risultatoFine sottotitolo

COUNT con un oggetto intervallo

È possibile assegnare un gruppo di celle all'oggetto Range e quindi utilizzare quell'oggetto Range con il pulsante Foglio di lavoroFunzione oggetto.

123456789 Sub TestCountRange()Dim rng come intervallo'assegna l'intervallo di celleImposta rng = Intervallo ("G2: G7")'usa l'intervallo nella formulaIntervallo ("G8") = Funzione Foglio di Lavoro. Conteggio (rng)'rilascia l'oggetto intervalloImposta rng = NienteFine sottotitolo

COUNT oggetti a intervallo multiplo

Allo stesso modo, puoi contare quante celle sono popolate con valori in più oggetti intervallo.

123456789101112 Sub TestCountMultipleRanges()Dim rngA come intervalloDim rngB come intervallo'assegna l'intervallo di celleImposta rngA = Intervallo ("D2: D10")Imposta rngB = Intervallo ("E2: E10")'usa l'intervallo nella formulaRange("E11") = WorksheetFunction.Count(rngA, rngB)'rilascia l'oggetto intervalloImposta rngA = NienteImposta rngB = NienteFine sottotitolo

Usando CONTA

Il conteggio conterà solo i VALORI nelle celle, non conterà la cella se la cella contiene del testo. Per contare le celle che sono popolate con qualsiasi tipo di dati, dovremmo usare la funzione CONTA.VALORI.

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

Nell'esempio seguente, la funzione CONTA.VALORI restituirebbe uno zero poiché non ci sono valori nella colonna B, mentre restituirebbe un 4 per la colonna C. La funzione CONTA.VALORI, tuttavia, conterebbe le celle con Testo e restituirebbe un valore di 5 nella colonna B mentre restituisce ancora un valore di 4 nella colonna C.

Utilizzo di COUNTBLANKS

La funzione COUNTBLANKS conterà solo le celle vuote nell'intervallo di celle, ovvero le celle che non contengono dati.

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

Nell'esempio seguente, la colonna B non ha celle vuote mentre la colonna C ha una cella vuota.

Utilizzo della funzione CONTA.SE

Un'altra funzione del foglio di lavoro che può essere utilizzata è la funzione CONTA.SE.

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

La procedura sopra conterà solo le celle con valori in esse se i criteri sono soddisfatti: maggiore di 0, maggiore di 100, maggiore di 1000 e maggiore di 10000. È necessario inserire i criteri tra virgolette affinché la formula funzioni correttamente.

Svantaggi di WorksheetFunction

Quando usi il Foglio di lavoroFunzione per contare i valori in un intervallo nel foglio di lavoro, viene restituito un valore statico, non una formula flessibile. Ciò significa che quando le tue cifre in Excel cambiano, il valore che è stato restituito dal Foglio di lavoroFunzione non cambierà.

Nell'esempio sopra, la procedura TestCount ha contato le celle nella colonna H in cui è presente un valore. Come puoi vedere nella barra della formula, questo risultato è una cifra e non una formula.

Se uno qualsiasi dei valori cambia quindi nell'intervallo (H2: H12), i risultati in H14 saranno NON modificare.

Invece di usare il Foglio di lavoroFunzione.Conteggio, puoi usare VBA per applicare una funzione di conteggio a una cella usando il Formula o FormulaR1C1 metodi.

Usando il metodo delle formule

Il metodo della formula consente di puntare specificamente a un intervallo di celle, ad esempio: H2: H12 come mostrato di seguito.

123 Sub TestCountFormulaIntervallo ("H14"). Formula = "= Conteggio (H2: H12)"Fine sottotitolo

Utilizzo del metodo FormulaR1C1

Il metodo FromulaR1C1 è più flessibile in quanto non ti limita a un determinato intervallo di celle. L'esempio seguente ci darà la stessa risposta di quello sopra.

123 Sub TestCountFormula()Intervallo ("H14"). Formula = "= Conteggio (R[-9]C:R[-1]C)"Fine sottotitolo

Tuttavia, per rendere la formula più flessibile, potremmo modificare il codice in questo modo:

123 Sub TestCountFormula()ActiveCell.FormulaR1C1 = "=Count(R[-11]C:R[-1]C)"Fine sottotitolo

Ovunque tu sia nel tuo foglio di lavoro, la formula conterà quindi i valori nelle 12 celle direttamente sopra di essa e inserirà la risposta nel tuo ActiveCell. È necessario fare riferimento all'intervallo all'interno della funzione COUNT utilizzando la sintassi Riga (R) e Colonna (C).

Entrambi questi metodi consentono di utilizzare formule Excel dinamiche all'interno di VBA.

Ora ci sarà una formula in H14 invece di un valore.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave