VLOOKUP Excel VBA: ssa - Kuinka kirjoittaa VLOOKUP-koodi VBA: ssa?

Vlookup on Excelin laskentataulukkofunktio, mutta sitä voidaan käyttää myös VBA: ssa, Vlookupin toiminnallisuus on samanlainen kuin VBA: n ja molempien laskentataulukoiden toiminnallisuus, koska se on laskentataulukkofunktio, jonka avulla Vlookupia voidaan käyttää VBA: ssa sovelluksen kautta. menetelmä ja argumentit pysyvät samana.

VLOOKUP-toiminto Excel VBA: ssa

Excelin VLOOKUP-funktiota käytetään etsimään taulukon arvoa ja palauttamaan vastaava arvo toisesta sarakkeesta. Haettavan arvon pitäisi olla ensimmäisessä sarakkeessa. On myös mainittava, etsitäänkö täsmällistä vai likimääräistä ottelua. Laskentataulukko-funktiota VLOOKUP voidaan käyttää VBA-koodauksessa. Toiminto ei ole sisäänrakennettu VBA, joten se voi soittaa vain laskentataulukon avulla.

Excelin VLOOKUP-funktiolla on seuraava syntakse:

Missä etsittävä arvo on etsittävä arvo, taulukon_arrray on taulukko, sarakkeen_indeksi_num on palautusarvon sarakkeen numero, alue_haku tarkoittaa, jos osuma on tarkka tai likimääräinen. range_lookup voi olla TOSI / EPÄTOSI tai 0/1.

VBA-koodissa VLOOKUP-toimintoa voidaan käyttää:

Application.WorksheetFunction.vlookup (haun_arvo, taulukon_haara, sarake-indeksi_num, alue_haku)

Kuinka käyttää VLookupia Excel VBA: ssa?

Alla on joitain esimerkkejä VLookup-koodista Excel VBA: ssa.

VLookup-koodi Excelissä VBA-esimerkki # 1

Katsotaanpa, kuinka voimme kutsua laskentataulukko-funktiota VLOOKUP Excel VBA: ssa.

Oletetaan, että hän antaa tietoja opiskelijoiden henkilöllisyydestä, nimestä ja heidän saamastaan ​​keskimääräisestä arvosanasta.

Haluat nyt etsiä opiskelijan, jolla on henkilötodistus 11004, saamat arvosanat.

Voit etsiä arvoa seuraavasti:

  • Siirry Kehittäjä-välilehteen ja napsauta Visual Basic.
  • Valitse VBA-ikkunan kohdasta Lisää ja napsauta Moduuli.
  • Kirjoita nyt VBA VLOOKUP -koodi. Seuraavaa VBA VLOOKUP -koodia voidaan käyttää.

Sub vlookup1 () Hämärä
opiskelijan_tunnus niin pitkä himmeä
merkitsee yhtä pitkä
opiskelijan_tunnus = 11004
Aseta alialue = Alue (“B4: D8”)
-merkit = Application.WorksheetFunction.VLookup (opiskelijan_tunnus, myyrange, 3, väärä)
Loppu

Määritä ensin opiskelijan tunnus, joka on etsittävä arvo. Siksi määritämme,

opiskelijan_id = 11004

Seuraavaksi määritetään alue, jolla arvo ja palautusarvo ovat. Koska tietomme ovat läsnä soluissa B4: D8, määritämme alue-alueen seuraavasti:

Set myrange = Range (“B4: D8”)

Lopuksi syötämme VLOOKUP-funktion käyttämällä muuttujan laskenta-funktiota, merkitään seuraavasti:

merkit = Application.WorksheetFunction.VLookup (opiskelijan_tunnus, myyrange, 3, väärä)

Tulostaaksesi merkinnät viestiruutuun, käytä seuraavaa komentoa:

MsgBox ”Opiskelija, jolla on henkilötunnus:” & opiskelijan_tunnus ja ”saatu”

Se palaa:

Opiskelija, jolla on henkilötodistus: 11004, sai 85 pistettä.

Napsauta nyt Suorita-painiketta.

Huomaat, että Excel-taulukossa näkyy viestiruutu.

VLookup-koodi Excelissä VBA-esimerkki # 2

Oletetaan, että sinulla on tiedot työntekijöiden nimistä ja heidän palkastaan. Nämä tiedot annetaan sarakkeissa B ja C. Nyt sinun on kirjoitettava VBA VLOOKUP -koodi siten, että annettu solun työntekijän nimi F4 palauttaa työntekijän palkan soluun G4.

Kirjoita VBA VLOOKUP -koodi.

  1. Määritä alue, jolla arvot ovat, eli sarakkeet B ja C.

Set myrange = Alue ("B: C")

  1. Määritä työntekijän nimi ja kirjoita nimi solusta F4.

Aseta nimi = Alue (“F4”)

  1. Määritä palkka soluksi G4.

Aseta palkka = Alue (“G4”)

  1. Kutsu nyt VLOOKUP-funktio käyttämällä VBA: n WorksheetFunction-toimintoa ja kirjoita se palkkaan. Arvo. Tämä palauttaa arvon (Vlookup-toiminnon ulostulo) solussa G4. Seuraavaa syntaksia voidaan käyttää:

palkka.arvo = Application.WorksheetFunction.VLookup (nimi, alue, 2, väärä)

  1. Suorita nyt moduuli. Solu G4 sisältää työntekijän palkan VBA VLOOKUP -koodin suorittamisen jälkeen.

Oletetaan, että muutat laskentataulukon solun F4 arvoksi ”David” ja suoritat koodin uudelleen, ja se palauttaa Davidin palkan.

VLookup-koodi Excelissä VBA-esimerkki # 3

Oletetaan, että sinulla on yrityksesi työntekijän tiedot, henkilötunnus, nimi, osasto ja palkka. Käyttämällä Vlookupia VBA: ssa haluat saada työntekijän palkkatiedot käyttämällä hänen nimeään ja osastoa.

Koska Excelin vlookup-funktio hakee hakuarvoa vain yhdestä sarakkeesta, joka on table_arrayn ensimmäinen sarake, sinun on ensin tehtävä sarake, joka sisältää jokaisen työntekijän nimen ja osaston.

Lisätään VBA: ssa arvot "Nimi" ja "Osasto" laskentataulukon sarakkeeseen B.

Voit tehdä tämän siirtymällä Kehittäjä-välilehteen ja valitsemalla Visual Basic. Siirry sitten kohtaan Lisää ja napsauta Moduuli aloittaaksesi uuden moduulin.

Kirjoita nyt koodi siten, että sarake B sisältää sarakkeen D (nimi) ja sarakkeen E arvot.

Syntaksi annetaan seuraavasti:

Ensinnäkin käyttää a '' silmukan i = 4, koska arvot ovat alkaen 4 : nnen rivin tässä tapauksessa. Silmukka jatkuu sarakkeen C viimeisen rivin loppuun asti. Joten muuttujaa I voidaan käyttää rivinumerona 'for' -silmukan sisällä.

Syötä sitten solulle määritettävä arvo (rivinumero_, sarake B), joka voidaan antaa soluina (i, “B”). Arvo soluna (rivinumero_, sarake D) & ”_” & solu (rivinumero_, sarake E). ).

Oletetaan, että haluat määrittää solun B5 = D5 & “_” & E5, voit yksinkertaisesti käyttää koodia seuraavasti:

Solut (5, "B"). Arvo = Solut (5, "D"). Arvo & "_" & solut (5, "E"). Arvo

Anna nyt etsiä hakuarvo taulukosta B5: E24. Sinun on ensin annettava hakuarvo. Otetaan arvo (nimi ja osasto) käyttäjältä. Tehdä tämä,

  1. määritä kolme muuttujaa, nimi, osasto ja haku_val merkkijonona.
  2. Ota nimen syöttö käyttäjältä. Käytä koodia:

name = InputBox ("Kirjoita työntekijän nimi")

Syöttökentän "Enter the…" sisältö näkyy kehotteessa, kun suoritat koodin. Kehotteeseen syötetty merkkijono osoitetaan nimimuuttujalle.

  1. Ota osasto käyttäjältä. Se voidaan tehdä samalla tavalla kuin edellä.

osasto = InputBox ("Syötä työntekijän osasto")

  1. Määritä nimi ja osasto erotimella ”_” muuttujalle lookup_val käyttämällä seuraavaa syntaksia:

lookup_val = nimi & “_” & osasto

  1. Kirjoita vlookup-syntaksin hakeaksesi hakutasoa alueella B5: E24 palauttaa sen muuttuvana palkkana.

Alusta muuttujapalkka:

Hämärä palkka yhtä pitkä

Käytä Vlookup-funktiota etsimään lookup_val. Table_array voidaan antaa alueena (“B: F”), ja palkka on viidennessä sarakkeessa. Seuraavaa syntaksia voidaan siten käyttää:

palkka = Application.WorksheetFunction.VLookup (look_val, Range (“B: F”), 5, False)

  1. Tulosta palkka viestiruutuun käyttämällä syntaksia:

MsgBox (Työntekijän palkka on ”& palkka)

Suorita nyt koodi. Laskentataulukkoon ilmestyy kehote, johon voit kirjoittaa nimen. Kun olet kirjoittanut nimen (Say Sashi) ja napsauttanut OK.

Se avaa toisen laatikon, johon voit kirjoittaa osaston. Kun olet tullut osastolle, sano IT.

Se tulostaa työntekijän palkan.

Jos Vlookup löytää minkä tahansa työntekijän, jolla on nimi ja osasto, se antaa virheen. Oletetaan, että annat nimen "Vishnu" ja osasto "IT", se palauttaa ajonaikaisen virheen "1004".

Voit korjata tämän ongelman määrittämällä koodissa, että tämäntyyppiseen virheeseen tulosta sen sijaan "Arvoa ei löydy". Tehdä tämä,

  1. Ennen kuin käytät vlookup-syntaksia, käytä seuraavia koodi-

On GoTo Message -virhe

Tarkistaa:

(Tarkistuksen :) jälkikoodia seurataan, ja jos se saa virheen, se siirtyy “message” -lausekkeeseen

  1. Määritä koodin lopussa (Before End Sub), että jos virheen numero on 1004, tulosta sitten viestiruutuun ”Työntekijän tietoja ei ole”. Tämä voidaan tehdä käyttämällä syntaksia:

Viesti:

Jos Err.Number = 1004 Sitten

MsgBox (”Työntekijän tietoja ei ole”)

Loppu Jos

Moduuli 1:

Sub vlookup3 ()
Jos i = 4 soluille (Rivit.Määrä, “C”). Loppu (xlUp). Rivisolut
(i, “B”). Arvo = Solut (i, “D”). Arvo & “_ "& Solut (i," E "). Arvo
Seuraava iDim-nimi String
Dim -osasto As String
Dim -haku_val As String
Dim-palkka As Longname = InputBox (" Anna työntekijän nimi ")
-osasto = InputBox (" Anna työntekijä ”)
lookup_val = nimi &“ _ ”& osasto On GoTo Viestien
tarkistus:
palkka = Application.WorksheetFunction.VLookup (lookup_val, Range (“ B: F ”), 5, False)
MsgBox (“ Työntekijän palkka on ”& Palkka) Viesti:
Jos Virhe.Luku = 1004 Sitten
MsgBox (“ Työntekijän tietoja ei ole ”)
Lopeta IfEnd Sub

Muistettavia asioita VLookupista Excel VBA: ssa

  • Vlookup-toiminto voidaan kutsua Excel VBA: ssa käyttämällä WorksheetFunction-toimintoa.
  • Vlookup-funktion syntaksit pysyvät samana Excel VBA: ssa.
  • Kun VBA vlookup -koodi ei löydä hakuarvoa, se antaa virheen 1004.
  • Vlookup-funktion virhe voidaan hallita goto-käskyllä, jos se palauttaa virheen.

Mielenkiintoisia artikkeleita...