Kuidas kasutada VBA Excelis töölehe funktsioone, näiteks VLOOKUP?

Lang L: none (table-of-contents):

Anonim

Funktsioone nagu VLOOKUP, COUNTIF, SUMIF nimetatakse töölehe funktsioonideks. Üldiselt on Excelis eelnevalt määratletud ja töölehel kasutamiseks valmis funktsioonid töölehe funktsioonid. Te ei saa VBA -s nende funktsioonide koodi muuta ega näha.

Teisest küljest on kasutaja määratletud funktsioonid ja VBA -le spetsiifilised funktsioonid, nagu MsgBox või InputBox, VBA -funktsioonid.

Me kõik teame, kuidas kasutada VBA funktsioone VBA -s. Aga mis siis, kui tahame VLOOKUP -i VBA -s kasutada. Kuidas me seda teeme? Selles artiklis uurime täpselt seda.

Töölehe funktsioonide kasutamine VBA -s

Töölehele pääsemiseks kasutame rakendusklassi. Peaaegu kõik töölehe funktsioonid on loetletud rakenduses Application.WorksheetFunction. Ja kasutades punktoperaatorit, pääsete neile kõigile juurde.

Kirjutage suvalises alamosas Application.WorksheetFunction. Ja hakake kirjutama funktsiooni nime. VBA intellisense näitab kasutatavate funktsioonide nime. Kui olete funktsiooni nime valinud, küsib see muutujaid, nagu mis tahes funktsioon Excelis. Kuid peate muutujad edastama VBA -le arusaadavas vormingus. Näiteks kui soovite läbida vahemiku A1: A10, peate selle edastama vahemiku objektina nagu vahemik ("A1: A10").

Nii et kasutame selle paremaks mõistmiseks mõnda töölehe funktsiooni.

Funktsiooni VLOOKUP kasutamine VBA -s

Siin on näidisandmed, et näidata, kuidas saate VBA -funktsiooni kasutada VBA -s. Pean VBA abil sõnumikasti näitama antud sisselogimisnime nime ja linna. Andmed on jaotatud vahemikku A1: K26.

VBE avamiseks ja mooduli sisestamiseks vajutage ALT+F11.

Vaadake allolevat koodi.

Sub WsFuncitons () Dim loginID String Dim Dim, city As String loginID = "AHKJ_1-3357042451" 'Funktsiooni VLOOKUP kasutamine antud ID nime saamiseks tabeli nimes = Application.WorksheetFunction.VLookup (loginID, Range ("A1: K26") ), 2, 0) 'Funktsiooni VLOOKUP kasutamine antud ID linna saamiseks tabelis city = Application.WorksheetFunction.VLookup (loginID, Range ("A1: K26"), 4, 0) MsgBox ("Name:" & name & vbLf & "Linn:" & linn) End Sub 

Selle koodi käivitamisel saate selle tulemuse.

Näete, kui kiiresti VBA prindib tulemuse sõnumikasti. Nüüd uurime koodi.

Kuidas see töötab?

1.

Hämardage sisselogimise ID stringina

Hämar nimi, linn kui string

Esiteks oleme deklareerinud kaks stringitüüpi muutujat, et salvestada funktsiooni VLOOKUP tagastatud tulemus. Olen kasutanud stringitüüpi muutujaid, sest olen kindel, et VLOOKUP -i poolt tagastatud tulemus on stringiväärtus. Kui eeldatakse, et teie töölehe funktsioon tagastab väärtuse numbri, kuupäeva, vahemiku jne tüübi, kasutage tulemuse salvestamiseks seda tüüpi muutujat. Kui te pole kindel, millist väärtust töölehe funktsioon tagastab, kasutage varianti tüüpi muutujaid.

2.

loginID = "AHKJ_1-3357042451"

Järgmisena oleme otsinguväärtuse salvestamiseks kasutanud muutujat loginID. Siin oleme kasutanud kõvakodeeritud väärtust. Võite kasutada ka viiteid. Näiteks. Saate kasutada vahemikku ("A2"). Väärtus, et dünaamiliselt värskendada otsinguväärtust vahemikust A2.

3.

name = Application.WorksheetFunction.VLookup (loginID, Range ("A1: K26"), 2, 0)

Siin kasutame hankimiseks funktsiooni VLOOKUP. Nüüd, kui funktsiooni parandate ja sulgude avate, näitab see teile nõutavaid argumente, kuid mitte nii kirjeldavalt kui Excelis. Vaata ise.

Peate meeles pidama, kuidas ja millist muutujat peate kasutama. Kirjeldava muutuja üksikasjade vaatamiseks võite alati töölehele naasta.

Siin on otsingu väärtus Arg1. Arg1 jaoks kasutame loginID. Otsingutabel on Arg2. Arg2 jaoks kasutasime vahemikku ("A1: K26"). Pange tähele, et me ei kasutanud otse A2: K26 nagu Excelis. Veergude indeks on Arg3. Arg3 jaoks kasutasime 2, kuna nimi on teises veerus. Otsingu tüüp on Arg4. Arg4 -na kasutasime 0.

linn = Application.WorksheetFunction.VLookup (sisselogimise ID, vahemik ("A1: K26"), 4, 0)

Samamoodi saame linna nime.

4.

MsgBox ("Nimi:" & nimi & vbLf & "Linn:" & linn)

Lõpuks prindime sõnumikasti abil nime ja linna.

Miks kasutada VBA -s töölehe funktsiooni?

Töölehe funktsioonidel on tohutult palju arvutusi ja töölehe funktsioonide võimsust ei ole tark ignoreerida. Näiteks kui soovime andmekogumi standardhälvet ja soovite selle jaoks terve koodi kirjutada, võib see võtta tunde. Aga kui teate, kuidas VBA -s töölehe funktsiooni STDEV.P kasutada, et arvutust ühe korraga saada.

Sub GetStdDev () std = Application.WorksheetFunction.StDev_P (Vahemik ("A1: K26")) Lõpu alam 

Mitme töölehe funktsiooni VBA kasutamine

Oletame, et mõne väärtuse toomiseks peame kasutama indeksivastet. Kuidas nüüd VBA -s valemit koostada? Ma arvan, et kirjutate selle:

Sub IndMtch () Val = Application.WorksheetFunction.Index (result_range, _ Application.WorksheetFunction.Match (lookup_value, _ lookup_range, match_type)) End Sub 

See pole vale, kuid see on pikk. Õige viis mitme funktsiooni kasutamiseks on ploki With kasutamine. Vaadake järgmist näidet:

Sub IndMtch () koos Application.WorksheetFunction Val = .Index (result_range, .Match (lookup_value, lookup_range, match_type)) val2 = .VLookup (arg1, arg2, arg3) val4 = .StDev_P (numbrid) End Sub 

Nagu näete, olen kasutanud koos plokiga, et öelda VBA -le, et kasutan rakenduse atribuute ja funktsioone. WorkSheetFunction. Nii et ma ei pea seda igal pool määratlema. Kasutasin just punktoperaatorit, et pääseda juurde funktsioonidele INDEX, MATCH, VLOOKUP ja STDEV.P. Kui kasutame lauset End With, ei pääse me funktsioonidele juurde ilma täielikult kvalifitseeritud funktsiooninimedeta.

Nii et kui peate VBA -s kasutama mitut töölehe funktsiooni, kasutage koos plokiga.

Kõik töölehe funktsioonid pole rakenduse kaudu saadaval. Töölehe funktsioon

Mõned töölehe funktsioonid on VBA -s kasutamiseks otse saadaval. Te ei pea rakendust Application.WorksheetFunction kasutama.

Näiteks selliseid funktsioone nagu Len (), mida kasutatakse tähemärkide arvu saamiseks stringis, vasakule, paremale, keskel, kärpimiseks, nihkeks jne. Neid funktsioone saab otse kasutada VBA -s. Siin on näide.

Sub GetLen () Strng = "Tere" silumine. Print (Len (strng)) Lõpu alam 

Vaadake, siin kasutasime funktsiooni LEN ilma Application.WorksheetFunction objekti kasutamata.

Samamoodi saate kasutada muid funktsioone, nagu vasak, parem, keskmine, sümbol jne.

Sub GetLen () Strng = "Tere" silumine. Print (Len (strng)) Silumine. Print (vasak (strng, 2)) Silumine. Print (parem (strng, 1)) Silumine. Print (keskmine (strng, 3, 2)) End Sub 

Kui käivitate ülaltoodud alamosa, naaseb see:

5 Ta o ll 

Nii et jah, poisid, nii saate VBA -s kasutada Exceli töölehe funktsiooni. Loodan, et olin piisavalt selgitav ja see artikkel aitas teid. Kui teil on selle artikli või mis tahes muu VBA -ga seotud küsimusi, küsige allpool kommentaaride jaotises. Kuni selle ajani saate lugeda muudest seotud teemadest allpool.

Mis on CSng -funktsioon Excel VBA -s | Funktsioon SCng on VBA-funktsioon, mis teisendab mis tahes andmetüübi ühe täpsusega ujukomaarvuks ("arvestades, et see on arv"). Ma kasutan enamasti funktsiooni CSng teksti vormindatud numbrite tegelikuks muutmiseks.

Kuidas saada teksti ja numbrit tagurpidi Microsoft Excelis VBA kaudu | Numbri ja teksti ümberpööramiseks kasutame VBA -s silmuseid ja keskfunktsiooni. 1234 teisendatakse 4321 -ks, "teie" teisendatakse "uoy" -ks. Siin on katkend.

Vormindage andmed kohandatud numbrivormingutega, kasutades Microsoft Excelis VBA -d | Exceli konkreetsete veergude numbrivormingu muutmiseks kasutage seda VBA -katkendit. See varjab määratud numbrivormingu ühe klõpsuga määratud vormingusse.

Töölehe muutmise sündmuse kasutamine makro käivitamiseks muudatuste tegemisel | Nii et makro käivitamiseks iga kord, kui lehte värskendatakse, kasutame VBA töölehe sündmusi.

Käivitage makro, kui lehel tehakse kindlaksmääratud vahemikus muudatusi | Makrokoodi käitamiseks, kui määratud vahemiku väärtus muutub, kasutage seda VBA -koodi. See tuvastab kõik määratud vahemikus tehtud muudatused ja käivitab sündmuse.

Lihtsaim VBA kood praeguse rea ja veeru esiletõstmiseks | Kasutage seda väikest VBA -katkendit lehe praeguse rea ja veeru esiletõstmiseks.

Populaarsed artiklid:

50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.

Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.

COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea oma andmeid teatud väärtuste loendamiseks filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.

Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.