Ta članek bo pokazal, kako z uporabo VBA poiskati vrednost v stolpcu.
Z Range.Find lahko preletimo skozi stolpec vrednosti v VBA, da poiščemo vse celice v obsegu, ki ustrezajo podanim merilom.
Zanka skozi stolpec z Range.Find in Range.FindNext
V spodnjem primeru pregledujemo podatke v stolpcu in iščemo besedo »zapadlo«. Ko najde besedo, bo celico označil s spreminjanjem barve besedila celice v rdečo. Nato se bo z metodo Range.FindNext pomaknil na naslednjo celico in še naprej iskal besedo ter nadaljeval zanko do konca določenega obsega celic.
1234567891011121314151617 | Sub FindLoop ()Zatemni strFirstAddress kot nizZatemni rngFindValue As RangeDim rngSearch As RangeZatemni rngFind As RangeNastavi rngFind = ActiveSheet.Range ("F1: F17")Nastavi rngSearch = rngFind.Cells (rngFind.Cells.Count)Nastavi rngFindValue = rngFind.Find ("Zamuda", rngSearch, xlValues)Če ni, potem rngFindValue ni ničstrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedNarediNastavi rngFindValue = rngFind.FindNext (rngFindValue)rngFindValue.Font.Color = vbRedZanka do rngFindValue.Address = strFirstAddressKonec ČeEnd Sub |
Ko se koda zažene, shrani naslov prve celice, kjer so podatki v spremenljivki strFirstAddress in spremeni barvo besedila v rdečo. Nato se ustvari zanka za iskanje naslednje celice, ki vsebuje zahtevane podatke. Ko je vrednost najdena, se barva besedila spremeni v rdečo, nato pa naslov celice, v kateri je vrednost, primerjamo z nizom strFirstAddress. Če niso enaki, se zanka nadaljuje in najde vsak primerek besede »zapadlo«. Ko zanka doseže konec obsega celic (tj. F17), se bo začela nazaj na začetku obsega (F1) in se bo nadaljevala. Ko drugič doseže naslov celice F3, saj je enak shranjeni spremenljivki strFirstAddress, se bo zanka ustavila.