VBA Contare le celle in colonna che contiene il valore specificato

Ho bisogno di scrivere una macro che ricerca una colonna specificata e conta tutte le celle che contengono una determinata stringa, come "19/12/11" or "Green" quindi associare questo numero con una variabile,

Qualcuno ha qualche idea?

 

4 Replies
  1. 57

    Vuoi dire che si desidera utilizzare una formula in VBA? Qualcosa come:

    Dim iVal As Integer
    iVal = Application.WorksheetFunction.COUNTIF(Range("A1:A10"),"Green")

    dovrebbe funzionare.

    • A proposito, è possibile aggiungere caratteri jolly per la tua ricerca di stringa come questa: iVal = Application.WorksheetFunction.COUNTIF(Range("A1:A10"),"*Green*")
  2. 13

    Questo non è esattamente che cosa si sta cercando, ma qui è come ho affrontato questo problema in passato;

    È possibile inserire una formula, come;

    =COUNTIF(A1:A10,"Green")

    …in una cella. Questo consentirà di contare il Numero di cellule tra A1 e A10 che contengono il testo “Verde”. Sarà quindi possibile selezionare il valore di una cella in una Macro VBA e assegnarlo a una variabile normale.

    • La tua risposta desserves un +1 per dare la giusta via da seguire. E spero che questo vi invitiamo a continuare a rispondere ad altre domande
    • Buona risposta la ringrazio, hanno mostrato un diverso modo per andare su di esso
  3. 2

    un modo;

    var = count("find me", Range("A1:A100"))
    
    function count(find as string, lookin as range) As Long
       dim cell As Range
       for each cell in lookin
           if (cell.Value = find) then count = count + 1 '//case sens
       next
    end function
    • Funziona, ma sarà molto lento in dimensioni decenti intervalli di prova cella per cella, meglio usare una funzione come JMax fatto, o utilizzare la gamma Find metodo
    • Funziona, ed è un grande grazie, ma come sopra JMax il metodo sembra funzionare meglio per me
  4. 0

    Non quello che hai chiesto, ma può essere comunque utile.

    Naturalmente, si può fare la stessa cosa con matrice di formule.
    Basta leggere il risultato della cella che contiene:

    Cell A1="Text to search"

    Cells A2:C20=Range to search for

    =COUNT(SEARCH(A1;A2:C20;1))

    Ricordare che entrare in matrix formule esigenze CTRL+MAIUSC+INVIO, non basta ENTRARE.
    Dopo, dovrebbe apparire come :

    {=COUNT(SEARCH(A1;A2:C20;1))}

    • bummi … non Sarebbe bello se qualcuno che fa una valutazione negativa racconta perché ? In modo che la prossima volta, non lo vorrei fare lo stesso errore ? So che sono un newbie, quindi potrei sbagliarmi …
    • Io non sono la persona che ha votato questo in giù, ma la mia ipotesi è che la questione iniziato “ho bisogno di scrivere una macro” e aveva “VBA” all’inizio del titolo, ma la tua risposta è in realtà una funzione del foglio di lavoro. Anch’io trovo fastidioso vedere downvotes senza alcuna spiegazione.

Lascia un commento