Sisällysluettelo
MS Excelissä joudumme usein etsimään tai löytämään arvoja tietokokonaisuudesta. Kyse voi olla tietojen etsimisestä riveiltä tai sarakkeista. Onneksi Excel tarjoaa erilaisia funktioita ja kaavoja tällaisten tehtävien suorittamiseen. Excel VBA -koodin avulla voimme automatisoida tämän arvojen etsimisen tai löytämisen. Tässä artikkelissa näemme erilaisia tapoja, joilla voimme löytää arvo sarakkeesta Excel VBA:ssa.
Lataa harjoituskirja
Etsi arvo sarakkeesta.xlsm6 esimerkkiä VBA: sta arvon löytämiseksi sarakkeesta Excelissä
Meillä on tuotetietoaineisto, jossa on tuotetiedot ja niiden Tuotetunnus , Merkki , Malli , Yksikköhinta ja Tilaus ID Tehtävämme on selvittää sovitettu - Tilaus ID Nyt tehtävämme on selvittää Tilaus ID liittyy Tuotetunnus .
1. Etsi arvo sarakkeesta käyttämällä VBA:n Find-funktiota
Ensimmäisessä esimerkissä käytämme Etsi-toiminto VBA:ssa löytääksesi arvon sarakkeesta.
📌 Vaiheet:
- Siirry arkin alareunassa olevaan arkin nimeen.
- Paina hiiren oikeaa painiketta.
- Valitse Näytä koodi vaihtoehto luettelosta.
- VBA-ikkuna avautuu. Valitse sitten Moduuli alkaen Lisää vaihtoehto
- Kirjoita nyt seuraava koodi VBA-konsoliin.
Sub Find_Value() Dim ProductID As Range Range("D4").ClearContents Set ProductID = Range("B8:B19").Find(What:=Range("C4").Value, _ LookIn:=xlValues, LookAt:=xlWhole) If Not ProductID Is Nothing Then Range("E5").Value = ProductID.Offset(, 4).Value Else MsgBox "Ei löydetty vastaavaa dataa !!" End If End Sub
- Lisää nyt painike tietokokonaisuuteen.
- Mene osoitteeseen Kehittäjä välilehti.
- Valitse Nappi ( Lomakkeen ohjaus ) alkaen Lisää jakso.
- Anna painikkeelle mikä tahansa nimi, kuten minä annan sen nimeksi Etsi .
- Määritä koodi tälle painikkeelle.
- Valitse painike ja paina hiiren oikeaa painiketta.
- Valitse Määritä makro luettelosta.
- Valitse haluamasi makro valikosta Määritä makro ikkuna.
- Paina sitten OK .
- Kirjoita nyt mikä tahansa Tuotetunnus ja klikkaa Etsi nappi.
Näemme, ettei vastaavuutta näy, koska tuotenumeroa ei ole luettelossa.
- Laita toinen Tuotetunnus ja paina uudelleen Etsi nappi.
Saamme tilausnumeron annetulle Tuotetunnus .
Lue lisää: Kuinka saada solun arvo rivin ja sarakkeen mukaan Excel VBA: ssa
2. VBA arvon etsimiseen eri laskentataulukoista
Tässä osassa teemme saman kuin edellä, mutta eri työarkkien osalta. Oletetaan, että tuotetietomme ovat osoitteessa Arkki 2 , ja hakukenttä on Arkki 3 Nyt kirjoitamme VBA-koodin, jotta voimme hakea tilauksen ID:n käyttämällä tuotteen ID:tä osoitteesta Lehti 3 .
Arkki 2:
Sheet3:
📌 Vaiheet:
- Noudata samoja ohjeita kuin vaihe 1 osoitteeseen vaihe 2 edellisestä menetelmästä VBA-konsolin avaamiseksi.
- Kirjoita nyt seuraava koodi VBA-konsoliin.
Sub Find_Value_from_worksheets() Dim rng As Range Dim ProductID As String Dim rownumber As Long ProductID = Sheet3.Cells(4, 3) Set rng = Sheet2.Columns("B:B").Find(What:=ProductID, _ LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) rownumber = rng.Row Sheet3.Cells(5, 5).Value = Sheet2.Cells(rownumber, 6).Value End Sub
- Lisää nyt jälleen painike kuten edellisessä.
- Määritä sitten makrokoodi painikkeelle.
- Kirjoita mikä tahansa Tuotetunnus ja klikkaa Suorita painike
Lue lisää: Etsi arvo sarakkeessa ja palauta toisen sarakkeen arvo Excelissä
3. Etsi ja merkitse arvo sarakkeesta
Katsotaanpa, miten voimme löytää arvot sarakkeesta merkitsemällä ne. Tätä varten oletetaan sama tietokokonaisuus yllä, jossa on lisäsarake nimeltä Toimituksen tila Nyt tehtävämme on merkitä arvot arvoihin Toimituksen tila sarake, jotka ovat Vireillä .
📌 Vaiheet:
- Seuraa samaa vaihetta alkaen vaihe 1 osoitteeseen vaihe 2 kuten edellisessä menetelmässä VBA-konsolin avaamiseksi.
- Kirjoita nyt seuraava koodi VBA-konsoliin.
Sub Find_and_Mark() Dim strAddress_First As String Dim rngFind_Value As Range Dim rngSrch As Range Dim rng_Find As Range Set rng_Find = ActiveSheet.Range("G1:G16") Set rngSrch = rng_Find.Cells(rng_Find.Cells.Count) Set rngFind_Value = rng_Find.Find("Pending", rngSrch, xlValues) If Not rngFind_Value Is Nothing Then strAddress_First = rngFind_Value.Address rngFind_Value.Font.Color = vbRed Do Set.rngFind_Value = rng_Find.FindNext(rngFind_Value) rngFind_Value.Font.Color = vbRed Loop Until rngFind_Value.Address = strAddress_First End If End Sub
- Siirry nyt laskentataulukkoon ja suorita koodi.
- Katso taulukon tulosteet.
Lue lisää: Miten löytää korkein arvo Excel-sarakkeessa (4 menetelmää)
4. VBA arvojen etsimiseen sarakkeesta käyttämällä jokerimerkkejä
Lopuksi näemme, miten voimme etsiä tai löytää arvoja sarakkeista käyttämällä jokerimerkkejä Excel VBA:ssa. Käytämme jälleen samaa tietokokonaisuutta kuin edellä. Tehtävämme on löytää tuotteiden hinnat niiden mallin avulla. Voisimme joko kirjoittaa koko nimen tai viimeisen/ensimmäisen merkin. Tuotetunnus .
📌 Vaiheet:
- Seuraa samaa vaihetta alkaen vaihe 1 osoitteeseen vaihe 2 kuten edellisessä menetelmässä VBA-konsolin avaamiseksi.
- Kirjoita nyt seuraava koodi VBA-konsoliin.
Sub Find_Using_Wildcards() Set myerange = Range("B5:G16") Set ID = Range("D19") Set Price = Range("F20") Price.Value = Application.WorksheetFunction.VLookup _ ("*" & Range("D19") & "*", myerange, 4, False) End Sub
- Lisää jälleen painike kuten edellisessä.
- Määritä nyt makrokoodi painikkeelle.
- Syötä nyt mikä tahansa osittainen Tuotetunnus ja paina Suorita nappi.
Lue lisää: Miten löytää alhaisin arvo Excel-sarakkeessa (6 tapaa)
5. Excel VBA sarakkeen enimmäisarvon etsimistä varten
Haluamme etsiä sarakkeen enimmäisarvon VBA-koodin avulla.
📌 Vaiheet:
- Haluamme selvittää enimmäishinnan.
- Laita nyt seuraava VBA-koodi uuteen moduuliin.
Sub Column_Max() Dim range_1 As Range Set range_1 = Application.InputBox(prompt:="Valitse alue", Type:=8) Max_Column = WorksheetFunction.Max(range_1) MsgBox Max_Column End Sub
- Paina sitten F5 painiketta VBA-koodin suorittamiseksi.
- The Tulo valintaikkuna tulee näkyviin.
- Valitse alue tietokokonaisuudesta.
- Paina lopuksi OK nappi.
Näemme, että enimmäisarvo näkyy valintaikkunassa.
6. Excel VBA sarakkeen viimeisen arvon löytämiseksi
Tässä halutaan tietää tietyn sarakkeen viimeisen rivin tai solun arvo. Esimerkiksi halutaan tietää viimeinen tuote sarakkeesta Tuote.
📌 Vaiheet:
- Syötä VBA alla olevaa koodia moduulissa.
Sub last_value() Dim L_Row As Long L_Row = Cells(Rows.Count, "B").End(xlUp).Row MsgBox Cells(L_Row, 2).Value End Sub
- Suorita sitten koodi painamalla F5 nappi.
Viimeinen arvo näkyy valintaikkunassa.
Lue lisää: Kuinka löytää arvon viimeinen esiintyminen Excel-sarakkeessa (5 menetelmää)
Muistettavat asiat
Joitakin yleisiä virheitä:
- Virhe: Yksi arvo kerrallaan. Koska FIND menetelmä voi löytää vain yhden arvon kerrallaan.
- Virhe: #NA osoitteessa VLOOKUP Jos etsittyä arvoa ei löydy annetusta tietokokonaisuudesta, tämä funktio palauttaa seuraavan tuloksen. #NA virhe.
- Range("Cell_Number").ClearContents (tyhjennä sisältö) osaa käytetään edellisen arvon poistamiseen solusta. Muussa tapauksessa edellinen arvo on poistettava manuaalisesti.
Päätelmä
Nämä ovat joitakin tapoja löytää arvoja sarakkeista käyttämällä VBA-koodia Excelissä. Olen näyttänyt kaikki menetelmät ja niiden esimerkit, mutta voi olla monia muita iteraatioita. Olen myös keskustellut käytettyjen funktioiden perusteista. Jos sinulla on jokin muu menetelmä tämän saavuttamiseksi, voit vapaasti jakaa sen kanssamme. Vieraile verkkosivustollamme. ExcelWIKI lisää mielenkiintoisia artikkeleita Excelistä.