VBA Trova valore in colonna

Questo articolo dimostrerà come utilizzare VBA per trovare un valore in una colonna.

Possiamo usare Range.Find per scorrere una colonna di valori in VBA per trovare tutte le celle nell'intervallo che corrispondono ai criteri specificati.

Ciclo di una colonna con Range.Find e Range.FindNext

Nell'esempio seguente, stiamo scorrendo i dati nella colonna e cercando la parola "Scaduto". Quando trova la parola, segnerà la cella cambiando il colore del testo della cella in rosso. Verrà quindi utilizzato il metodo Range.FindNext per passare alla cella successiva e continuare a cercare la parola, continuando il ciclo fino alla fine dell'intervallo di celle specificato.

1234567891011121314151617 Sotto FindLoop()Dim strFirstAddress As StringDim rngFindValue As RangeDim rngCerca come intervalloDim rngTrova come intervalloImposta rngFind = ActiveSheet.Range("F1:F17")Imposta rngSearch = rngFind.Cells(rngFind.Cells.Count)Imposta rngFindValue = rngFind.Find("Scaduto", rngSearch, xlValues)Se non rngFindValue non è niente allorastrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedFareImposta rngFindValue = rngFind.FindNext(rngFindValue)rngFindValue.Font.Color = vbRedCiclo fino a rngFindValue.Address = strFirstAddressFinisci seFine sottotitolo

Quando il codice viene eseguito, salva l'indirizzo della prima cella in cui si trovano i dati nella variabile strFirstAddress e cambia il colore del testo in rosso. Viene quindi creato un ciclo per trovare la cella successiva che contiene i dati richiesti. Quando viene trovato il valore, il colore del testo viene modificato in rosso e quindi l'indirizzo della cella in cui si trova il valore viene confrontato con la stringa strFirstAddress. Se questi non sono gli stessi, il ciclo continua, trovando ogni istanza della parola "Overdue". Una volta che il ciclo raggiunge la fine dell'intervallo di celle (es. F17), ricomincerà dall'inizio dell'intervallo (F1) e continuerà a eseguire il ciclo. Una volta raggiunto l'indirizzo di cella F3 per la seconda volta, poiché è lo stesso della variabile memorizzata strFirstAddress, il ciclo si fermerà.

wave wave wave wave wave