Sisällysluettelo
MS Excel tarjoaa erilaisia toimintoja tiettyjen arvojen tai elementtien etsimistä tai näkemistä varten. VLOOKUP on yksi niistä. Se auttaa meitä etsimään haluttuja tietoja mistä tahansa tietokokonaisuudesta. Sen avulla voimme mainita, haluammeko etsiä täsmällistä vai likimääräistä vastaavuutta. Sen lisäksi, että käytämme tätä funktiota Excel-kaavassa, voimme käyttää sitä myös VBA-koodissa. Tässä artikkelissa näemme, miten voimme käyttää tätä funktiota. VLOOKUP-toiminto VBA:ssa.
Lataa harjoituskirja
VLOOKUP in VBA.xlsm4 tapaa käyttää VLOOKUPia VBA:ssa
1. Tietojen haku manuaalisesti käyttämällä VLOOKUP-ohjelmaa VBA:ssa
Meillä on työntekijätietoaineisto, jossa on työntekijän tunnus, nimi, osasto, liittymispäivä ja palkka. Tehtävämme on nyt selvittää työntekijän tiedot hänen tunnuksensa avulla manuaalisesti. Tässä osassa selvitämme vain työntekijän palkan hänen tunnuksensa avulla.
Vaihe 1: Valitse Visual Basic osoitteessa Kehittäjä välilehti (Pikavalinta Alt + F11 )
Vaihe 2: Sitten tulee ikkuna. Valitse Moduuli vaihtoehto Lisää painike
Vaihe 3: Kirjoita nyt seuraava koodi VBA-konsoliin ja paina painiketta Suorita painike (pikavalinta F5 )
Koodi:
Sub vlookup_function_1() Dim Employee_id As Long Dim salary As Long Employee_id = 1144 Set myerange = Range("B4:F11") salary = Application.WorksheetFunction.VLookup(Employee_id, myerange, 5, False) MsgBox "Employee ID:" & Employee_id & " Palkka " & "$" & salary End Sub
Vaihe 4: Nyt tulee ponnahdusviesti, joka näyttää seuraavat tiedot
Lue lisää: VLOOKUP tekstin etsimiseen Excelissä (4 helppoa tapaa)
2. Tietojen etsiminen syötteen avulla käyttämällä VLOOKUP-ohjelmaa VBA:ssa
Katsotaan nyt, miten voimme hakea tai poimia tietoja taulukoista tai alueista syötteen avulla. Kuten kuvassa, selvitämme syötetyn tunnuksen nimen työntekijän tiedot -taulukosta.
Vaihe 1: Avaa ensin VBA-konsoli noudattamalla samaa vaihetta 1 ja 2 välillä.
Vaihe 2: Kirjoita nyt VBA-ikkunaan seuraava koodi
Koodi:
Sub vlookup_function_2() Set myerange = Range("B4:F11") Set ID = Range("D13") Set Name = Range("D14") Name.Value = Application.WorksheetFunction.VLookup(ID, myerange, 2, False) End Sub
Vaihe 3: Kirjoita nyt mikä tahansa ID soluun D13 ja suorita koodi
Vaihe 4: The Nimi joka on tallennettu tunnusta vastaan, näytetään
Lue lisää: 10 parasta käytäntöä VLOOKUPin kanssa Excelissä
Samanlaisia lukemia
- VLOOKUP ei toimi (8 syytä & ratkaisut)
- INDEX MATCH vs. VLOOKUP-funktio (9 esimerkkiä)
- Käytä VLOOKUPia useilla kriteereillä Excelissä (6 menetelmää + vaihtoehdot)
- Excel VLOOKUP löytää sarakkeen viimeisen arvon (vaihtoehtojen kanssa)
- Excel VLOOKUP palauttaa useita arvoja pystysuoraan
3. Tietojen etsiminen syöttölaatikosta käyttämällä VLOOKUP-ohjelmaa VBA:ssa
Katsotaanpa, miten voimme hakea tietoja VBA:n syöttöruudun avulla. Hakua varten meidän on käytettävä komentoa VLOOKUP funktio VBA-koodissa. Jälleen kerran tietokanta on sama, mutta hakutapa on erilainen. Tässä tehtävämme on selvittää työntekijän palkka syöttämällä tunnus ja osasto.
Vaihe 1: Avaa ensin VBA-ikkuna noudattamalla samaa vaihetta 1 ja 2 välillä.
Vaihe 2: Kirjoita nyt VBA-konsoliin seuraava koodi ja Suorita se
Koodi:
Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i End Sub
Vaihe 3: Tämä tulostaa yhdistetyn merkkijonon, jonka ensimmäisessä sarakkeessa on tunnus ja osasto.
Vaihe 4: Mene nyt uudelleen VBA-konsoliin ja syötä koko koodi ja suorita se uudelleen.
Koodi:
Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i Dim ID As Long Dim department As String Dim lookup_val As String Dim salary As Long ID = InputBox("Syötä palkansaajan tunnus") department = InputBox("Syötä palkansaajan osasto") lookup_val = ID & "_" & department OnError GoTo Message check: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("Työntekijän palkka on $" & salary) Message: If Err.Number = 1004 Then MsgBox ("Työntekijän tietoja ei ole") End If End Sub
Koodi Selitys
- Ensinnäkin, Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value tämän koodin avulla tallennamme ID- ja Department-arvot yhdistettyinä sarakkeeseen A.
- lookup_val = ID & "_" & osasto tässä määritellään, että hakuarvo on ID ja osasto.
- salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) tässä tallennamme sovitetun työntekijän palkan muuttujaan nimeltä palkka
- If Err. Number = 1004 Then Tämä on ehdon tarkistus. Tarkistamme, onko virhenumero 1004 vai ei. Excel VBA:ssa 1004-koodi tarkoittaa, että etsittyä arvoa ei löydy, sitä ei ole poistettu tai se on poistettu.
Vaihe 5: Nyt avautuu tämän kuvan kaltainen ponnahdusikkuna. Enter. ID ja Osasto peräkkäin
Vaihe 6: Kun olet painanut Ok painiketta, lopullinen tuloste näytetään
Vaihe 7: Jos syötät väärän ID tai Osasto, se näyttää alla olevan viestin
Lue lisää: Miten VLOOKUP useita ehtoja Excelissä (2 menetelmiä)
4. Tietojen etsiminen painikkeella käyttämällä VLOOKUPia VBA:ssa
Nyt katsotaan, miten voimme selvittää tietoja painikkeen avulla sen sijaan, että suorittaisimme koodin manuaalisesti. Tietokanta on jälleen sama kuin edellä.
Vaihe 1: Valitse ensin Lisää vaihtoehto kohdassa Kehittäjä välilehti
Vaihe 2: Valitse sitten Nappi vaihtoehto Lisää
Vaihe 3: Sijoita painike vaatimustesi mukaisesti ja anna painikkeen nimi.
Vaihe 4: Napsauta nyt painiketta hiiren kakkospainikkeella ja valitse Määritä makro
Vaihe 5: Luo nyt uusi makro ja nimeä se vlookup_function_4
Vaihe 6: Kirjoita alla oleva koodi VBA-konsoliin, ja Suorita koodi
Koodi:
Sub vlookup_function_4() Dim rng As Range, FinalResult As Variant, Table_Range As Range, LookupValue As Range Set rng = Sheets("Sheet4").Range("D15") Set Table_Range = Sheets("Sheet4").Range("B4:F11") Set LookupValue = Sheets("Sheet4").Range("D14") FinalResult = Application.WorksheetFunction.VLookup(LookupValue, Table_Range, 5, False) rng = FinalResult End Sub
Vaihe 6: Syötä nyt mikä tahansa tunnus ja paina painiketta
Lue lisää: VBA VLOOKUPin käyttö arvojen etsimiseen toisesta Excel-taulukosta Excelissä
Muistettavat asiat
Yleiset virheet | Kun he näyttävät |
---|---|
1004 virhe | Kun VBA:n vlookup-koodi ei löydä lookup_value-arvoa, se antaa virheilmoituksen 1004. |
VLOOKUP-funktiota ei löydy VBA:sta | Vlookup-funktiota voidaan kutsua Excel VBA:ssa käyttämällä WorksheetFunction-toimintoa. |
Virheiden käsittely | vlookup-funktion virhettä voidaan hallita käyttämällä Siirry osoitteeseen lauseke, jos se palauttaa virheen. |
Päätelmä
Nämä ovat joitakin tapoja käyttää VLOOKUP funktio VBA:ssa Excelissä. Olen näyttänyt kaikki menetelmät esimerkkeineen, mutta niitä voi olla monia muitakin. Olen myös käsitellyt käytettyjen funktioiden perusteita. Jos sinulla on jokin muu menetelmä tämän saavuttamiseksi, voit jakaa sen kanssamme.