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. Toimintoa ei ole rakennettu VBA: ssa, joten se voi soittaa vain laskentataulukon avulla.

Excelin VLOOKUP-funktiolla on seuraava syntakse:

Missä hakuarvo on etsittävä arvo, table_arrray on taulukko, col_index_num on palautusarvon sarakkeen numero, range_lookup tarkoittaa, onko osuma 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_kuvaaja, sarakkeen_indeksin_numero, alueen_haku)

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

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

Voit ladata tämän VLookupin Excel VBA -mallissa täältä - VLookup Excel VBA -mallissa

VLookup-koodi Excelissä VBA-esimerkki # 1

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

Oletetaan, että sinulla on tietoja opiskelijoiden henkilötodistuksista, nimistä ja heidän saamista keskimääräisistä pisteistä.

Haluat nyt etsiä opiskelijan saamat arvosanat henkilötodistuksella 11004.

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ä student_id niin kauan

Dim merkitsee yhtä pitkää

student_id = 11004

Set myrange = Range ("B4: D8")

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

End Sub

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

student_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” & pisteitä & ”pisteitä”

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 työntekijöiden nimet ja heidän palkkansa. Nämä tiedot annetaan sarakkeissa B ja C. Nyt sinun on kirjoitettava VBA VLOOKUP -koodi siten, että työntekijälle annettu nimi solussa 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, vaihtelualue, 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, 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_array: n ensimmäinen sarake, sinun on ensin tehtävä sarake, joka sisältää kunkin 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. Mene sitten lisäämään ja napsauttamalla 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äytä 'for' -silmukkaa i = 4, koska arvot alkavat tässä tapauksessa 4. riviltä. Silmukka jatkuu sarakkeen C viimeisen rivin loppuun asti. Muuttujaa i voidaan siis 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 palauta se 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 (haku_val, alue ("B: F"), 5, väärä)

  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än tyyppiseen virheeseen tulosta sen sijaan "Arvo 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 valvotaan, ja jos se saa virheitä, se siirtyy “message” -lausekkeeseen

  1. Määritä koodin (Before End Sub) lopussa, 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 soluihin (rivit.luku, “C”). Loppu (xlUp). Rivi

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

Seuraava iDim-nimi merkkijonona

Hämärä osasto merkkijonona

Himmennä haku_val merkkijonona

Hämärä palkka As Longname = InputBox ("Kirjoita työntekijän nimi")

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

lookup_val = nimi & “_” & osasto On GoTo Message -virhe

tarkistaa:

palkka = Application.WorksheetFunction.VLookup (haku_val, alue ("B: F"), 5, väärä)

MsgBox ("Työntekijän palkka on" & palkka) Viesti:

Jos Err.Number = 1004 Sitten

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

Lopeta IfEnd Sub

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

$config[zx-auto] not found$config[zx-overlay] not found