Tämä artikkeli osoittaa, kuinka VBA: n avulla voidaan löytää arvo sarakkeesta.
Voimme käyttää Range.Findiä kiertämään VBA: n arvosarakkeen löytääksesi kaikki alueen solut, jotka vastaavat määritettyjä ehtoja.
Silmukan kiertäminen sarakkeessa, jossa on Range.Find ja Range.FindNext
Alla olevassa esimerkissä selaamme sarakkeen tietoja ja etsimme sanaa "myöhässä". Kun se löytää sanan, se merkitsee solun muuttamalla solutekstin värin punaiseksi. Sen jälkeen käytämme Range.FindNext -menetelmää siirtyäksesi seuraavaan soluun ja jatkaaksesi sanan etsimistä, jatkamalla silmukkaa määritetyn solualueen loppuun asti.
1234567891011121314151617 | Osa FindLoop ()Himmennä strFirstAddress merkkijononaDim rngFindValue As RangeDim rngSearch as RangeDim rngFind As RangeAseta rngFind = ActiveSheet.Range ("F1: F17")Aseta rngSearch = rngFind.Cells (rngFind.Cells.Count)Aseta rngFindValue = rngFind.Find ("Myöhästynyt", rngSearch, xlValues)Jos ei, rngFindValue ei ole sitten mitäänstrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedTehdäAseta rngFindValue = rngFind.FindNext (rngFindValue)rngFindValue.Font.Color = vbRedSilmukka kunnes rngFindValue.Address = strFirstAddressLoppu JosEnd Sub |
Kun koodi suoritetaan, se tallentaa ensimmäisen solun osoitteen, jossa tiedot löytyvät muuttujasta strFirstAddress ja muuttaa tekstin värin punaiseksi. Sitten luodaan silmukka seuraavan solun löytämiseksi, joka sisältää vaaditut tiedot. Kun arvo on löydetty, tekstin väri muuttuu punaiseksi ja sitten solun osoite, josta arvo löytyy, verrataan merkkijonoon strFirstAddress. Jos nämä eivät ole samat, silmukka jatkuu ja löytää jokaisen esiintymän sanasta "myöhässä". Kun silmukka saavuttaa solualueen (eli F17) lopun, se alkaa takaisin alueen (F1) alusta ja jatkaa silmukkaa. Kun se saavuttaa soluosoitteen F3 toisen kerran, koska se on sama kuin tallennettu muuttuja strFirstAddress, silmukka pysähtyy.