VLOOKUPin käyttö VBA:ssa (4 tapaa)

  • Jaa Tämä
Hugh West

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.xlsm

4 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.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.