mercoledì 24 settembre 2014

Trovare le occorrenze di un contenuto di cella con Find e FindNext

Sub prova()
Set C = Range("insieme").Find("ciccio")
firstaddress = C.Address
Do While C Is Nothing = False And C.Address <> firstaddress
Set C = Range("insieme").FindNext(C)
C.Interior.Color = vbRed
Loop
End Sub
Trova il primo indirizzo che è A3.
Non ne trova più altri perché il Do While impone di uscire dal ciclo quando C.Address sia uguale a firstaddress.

Con questa modifica, invece, sembra funzionare, perché il Do While esce dal ciclo dopo che sia stato individuata la successiva ricorrenza del contenuto della cella.
Sub prova()
Set c = Range("insieme").Find("ciccio")
firstaddress = c.Address
Do
Set c = Range("insieme").FindNext(c)
c.Interior.Color = vbRed
Loop While c Is Nothing = False And c.Address <> firstaddress
End Sub
colora di rosso tutte le celle dell'insieme in cui vi sia il contenuto "ciccio".

Questa tecnica si può usare per il mio programma.

Nessun commento:

Posta un commento