Kā lietot darblapas funkcijas, piemēram, VLOOKUP, programmā VBA Excel?

Satura rādītājs:

Anonim

Tādas funkcijas kā VLOOKUP, COUNTIF, SUMIF sauc par darblapas funkcijām. Parasti funkcijas, kas ir iepriekš definētas programmā Excel un gatavas lietošanai darblapā, ir darblapas funkcijas. VBA nevar mainīt vai redzēt šo funkciju kodu.

No otras puses, lietotāja noteiktas funkcijas un funkcijas, kas raksturīgas VBA, piemēram, MsgBox vai InputBox, ir VBA funkcijas.

Mēs visi zinām, kā izmantot VBA funkcijas VBA. Bet ko darīt, ja mēs vēlamies izmantot VLOOKUP VBA. Kā mēs to darām? Šajā rakstā mēs izpētīsim tieši to.

Darblapas funkciju izmantošana VBA

Lai piekļūtu darblapas funkcijai, mēs izmantojam lietojumprogrammu klasi. Gandrīz visas darblapas funkcijas ir uzskaitītas lietojumprogrammā.WorksheetFunction klase. Un, izmantojot punktu operatoru, varat tiem visiem piekļūt.

Jebkurā apakšrakstā ierakstiet Application.WorksheetFunction. Un sāciet rakstīt funkcijas nosaukumu. VBA intellisense parādīs izmantojamo funkciju nosaukumu. Kad esat izvēlējies funkcijas nosaukumu, tā lūgs mainīgos, tāpat kā jebkuru funkciju programmā Excel. Bet jums būs jānodod mainīgie VBA saprotamā formātā. Piemēram, ja vēlaties iziet diapazonu A1: A10, jums tas būs jānodod kā diapazona objekts, piemēram, diapazons ("A1: A10").

Tāpēc izmantosim dažas darblapas funkcijas, lai to labāk izprastu.

Kā izmantot funkciju VLOOKUP VBA

Lai parādītu, kā varat izmantot funkciju VLOOKUP VBA, šeit ir datu paraugi. Man ir jāparāda dotā pieteikšanās ID vārds un pilsēta ziņojumu lodziņā, izmantojot VBA. Dati tiek izplatīti diapazonā A1: K26.

Nospiediet ALT+F11, lai atvērtu VBE un ievietotu moduli.

Skatiet zemāk esošo kodu.

Sub WsFuncitons () Dim loginID As String Dim name, city As String loginID = "AHKJ_1-3357042451" 'Izmantojot funkciju VLOOKUP, lai iegūtu dotā ID nosaukumu tabulas nosaukumā = Application.WorksheetFunction.VLookup (loginID, Range ("A1: K26") ), 2, 0) 'Izmantojot funkciju VLOOKUP, lai tabulā iegūtu pilsētu ar norādīto ID = Application.WorksheetFunction.VLookup (loginID, Range ("A1: K26"), 4, 0) MsgBox ("Name:" & name & vbLf & "City:" & city) End Sub 

Palaižot šo kodu, jūs iegūsit šo rezultātu.

Jūs varat redzēt, cik ātri VBA izdrukā rezultātu ziņojumu lodziņā. Tagad pārbaudīsim kodu.

Kā tas darbojas?

1.

Pieteikšanās ID aptumšošana kā virkne

Dim nosaukums, pilsēta Kā virkne

Vispirms esam deklarējuši divus virknes tipa mainīgos, lai saglabātu VLOOKUP funkcijas atgriezto rezultātu. Esmu izmantojis virkņu tipa mainīgos, jo esmu pārliecināts, ka VLOOKUP atgrieztais rezultāts būs virknes vērtība. Ja darblapas funkcijai ir jāatgriež vērtības, datuma, diapazona uc veida vērtība, izmantojiet šāda veida mainīgo, lai saglabātu rezultātu. Ja neesat pārliecināts, kāda veida vērtību atgriezīs darblapas funkcija, izmantojiet varianta tipa mainīgos.

2.

loginID = "AHKJ_1-3357042451"

Tālāk mēs esam izmantojuši mainīgo loginID, lai saglabātu uzmeklēšanas vērtību. Šeit mēs esam izmantojuši cieto kodu. Varat arī izmantot atsauces. Piemēram. Varat izmantot diapazonu ("A2"). Vērtība, lai dinamiski atjauninātu uzmeklēšanas vērtību no diapazona A2.

3.

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

Šeit mēs izmantojam funkciju VLOOKUP, lai iegūtu. Tagad, kad jūs labojat funkciju un atverat iekavas, tā parādīs nepieciešamos argumentus, bet ne tik aprakstošus, kā tas tiek parādīts programmā Excel. Paskaties pats.

Jums jāatceras, kā un kāds mainīgais jāizmanto. Jūs vienmēr varat atgriezties darblapā, lai redzētu aprakstošā mainīgā informāciju.

Šeit uzmeklēšanas vērtība ir Arg1. Arg1 izmantojam loginID. Uzmeklēšanas tabula ir Arg2. Arg2 izmantojām diapazonu ("A1: K26"). Ņemiet vērā, ka mēs neizmantojām tieši A2: K26 kā Excel. Kolonnu indekss ir Arg3. Arg3 mēs izmantojām 2, jo nosaukums ir otrajā slejā. Uzmeklēšanas veids ir Arg4. Mēs izmantojām 0 kā Arg4.

city ​​= Application.WorksheetFunction.VLookup (loginID, Range ("A1: K26"), 4, 0)

Līdzīgi mēs iegūstam pilsētas nosaukumu.

4.

MsgBox ("Name:" & name & vbLf & "City:" & city)

Visbeidzot, izmantojot Messagebox, mēs izdrukājam vārdu un pilsētu.

Kāpēc izmantot darblapas funkciju VBA?

Darblapas funkcijām ir milzīgi aprēķini, un nav prātīgi ignorēt darblapas funkciju spēku. Piemēram, ja mēs vēlamies datu kopas standarta novirzi un vēlaties rakstīt visu kodu, tas var aizņemt stundas. Bet, ja jūs zināt, kā VBA izmantot darblapas funkciju STDEV.P, lai iegūtu aprēķinu vienā piegājienā.

Sub GetStdDev () std = Application.WorksheetFunction.StDev_P (Diapazons ("A1: K26")) Beigu apakšdaļa 

Vairāku darblapu funkciju izmantošana VBA

Pieņemsim, ka dažu vērtību izgūšanai jāizmanto indeksa atbilstība. Tagad, kā jūs formulētu formulu VBA. Es domāju, ka jūs rakstīsit:

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

Tas nav nepareizi, bet tas ir garš. Pareizais veids, kā izmantot vairākas funkcijas, ir, izmantojot bloku Ar. Skatiet zemāk redzamo piemēru:

Sub IndMtch () ar Application.WorksheetFunction Val = .Index (result_range, .Match (lookup_value, lookup_range, match_type)) val2 = .VLookup (arg1, arg2, arg3) val4 = .StDev_P (skaitļi) Beidzas ar End Sub 

Kā redzat, es izmantoju ar bloku, lai pateiktu VBA, ka izmantošu lietojumprogrammas rekvizītus un funkcijas. WorksheetFunction. Tāpēc man tas nav visur jādefinē. Es tikko izmantoju punktu operatoru, lai piekļūtu funkcijām INDEX, MATCH, VLOOKUP un STDEV.P. Kad mēs izmantojam paziņojumu “Beigt ar”, mēs nevaram piekļūt funkcijām, neizmantojot pilnībā kvalificētus funkciju nosaukumus.

Tātad, ja VBA jāizmanto vairākas darblapas funkcijas, izmantojiet ar bloku.

Ne visas darblapas funkcijas ir pieejamas, izmantojot lietojumprogrammu.WorksheetFunction

Dažas darblapas funkcijas ir tieši pieejamas izmantošanai VBA. Jums nav jāizmanto objekts Application.WorksheetFunction.

Piemēram, tādas funkcijas kā Len (), ko izmanto, lai iegūtu rakstzīmju skaitu virknē, pa kreisi, pa labi, vidū, apgriešanu, nobīdi utt. Šīs funkcijas var tieši izmantot VBA. Šeit ir piemērs.

Sub GetLen () Strng = "Labdien" atkļūdošana. Drukāt (Len (strng)) beigu apakšdaļa 

Skatiet, šeit mēs izmantojām funkciju LEN, neizmantojot Application.WorksheetFunction objektu.

Līdzīgi varat izmantot arī citas funkcijas, piemēram, kreiso, labo, vidējo, simbolu utt.

Apakš GetLen () Strng = "Sveiki" atkļūdot. Drukāt (Len (strng)) Atkļūdot. Drukāt (pa kreisi (strng, 2)) Atkļūdot. Drukāt (pa labi (strng, 1)) Atkļūdot. Drukāt (Mid (strng, 3, 2)) Beigu apakš 

Palaižot iepriekš minēto apakšpozīciju, tā atgriezīsies:

5 Viņš būs 

Tātad, jā, puiši, šādi varat izmantot Excel darblapas funkciju VBA. Es ceru, ka es biju pietiekami izskaidrojošs un šis raksts jums palīdzēja. Ja jums ir kādi jautājumi par šo rakstu vai kaut ko citu saistītu VBA, jautājiet zemāk esošajā komentāru sadaļā. Līdz tam jūs varat lasīt par citām saistītām tēmām zemāk.

Kas ir CSng funkcija programmā Excel VBA | Funkcija SCng ir VBA funkcija, kas jebkuru datu tipu pārvērš par vienas precizitātes peldošā komata skaitli ("ņemot vērā, ka tas ir skaitlis"). Es galvenokārt izmantoju CSng funkciju, lai teksta formatētus skaitļus pārvērstu faktiskos skaitļos.

Kā iegūt tekstu un ciparus apgrieztā veidā, izmantojot VBA programmā Microsoft Excel | Lai mainītu ciparus un tekstu, VBA izmantojam cilpas un vidusfunkciju. 1234 tiks pārveidots par 4321, "jūs" tiks pārveidots par "uoy". Šeit ir fragments.

Formatējiet datus ar pielāgotiem skaitļu formātiem, izmantojot Microsoft Excel VBA | Lai mainītu konkrētu Excel kolonnu skaitļu formātu, izmantojiet šo VBA fragmentu. Tas ar vienu klikšķi pārklāj norādīto ciparu formātu uz noteiktu formātu.

Darblapas maiņas notikuma izmantošana, lai palaistu makro, kad tiek veiktas izmaiņas | Tātad, lai palaistu jūsu makro ikreiz, kad lapa tiek atjaunināta, mēs izmantojam VBA darblapas notikumus.

Palaidiet makro, ja lapā tiek veiktas izmaiņas noteiktā diapazonā | Lai palaistu makro kodu, mainoties vērtībai noteiktā diapazonā, izmantojiet šo VBA kodu. Tas nosaka visas izmaiņas, kas veiktas norādītajā diapazonā, un aktivizēs notikumu.

Vienkāršākais VBA kods, lai izceltu pašreizējo rindu un kolonnu, izmantojot | Izmantojiet šo mazo VBA fragmentu, lai iezīmētu lapas pašreizējo rindu un kolonnu.

Populāri raksti:

50 Excel saīsnes, lai palielinātu produktivitāti | Ātrāk izpildiet savu uzdevumu. Šie 50 īsceļi ļaus jums strādāt vēl ātrāk programmā Excel.

Funkcija VLOOKUP programmā Excel | Šī ir viena no visbiežāk izmantotajām un populārākajām Excel funkcijām, kas tiek izmantota, lai meklētu vērtību no dažādiem diapazoniem un lapām.

COUNTIF programmā Excel 2016 | Saskaitiet vērtības ar nosacījumiem, izmantojot šo apbrīnojamo funkciju. Jums nav jāfiltrē dati, lai saskaitītu noteiktas vērtības. Skaitītāja funkcija ir būtiska, lai sagatavotu informācijas paneli.

Kā lietot SUMIF funkciju programmā Excel | Šī ir vēl viena būtiska informācijas paneļa funkcija. Tas palīdz apkopot vērtības noteiktos apstākļos.