VBA Etsi arvo sarakkeesta

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.

wave wave wave wave wave