Pradedančiųjų mokymas rašyti VBA makrokomandas „Excel“ (ir kodėl turėtumėte mokytis)

Pradedančiųjų mokymas rašyti VBA makrokomandas „Excel“ (ir kodėl turėtumėte mokytis)

„Excel“ makrokomandos gali sutaupyti daug laiko dažnai naudojamų „Excel“ procesų automatizavimas . Tačiau makrokomandos iš tikrųjų yra gana ribotos. Naudojant įrašymo įrankį lengva suklysti, o įrašymo procesas yra nepatogus.





Naudojant VBA makrokomandoms kurti, suteikiama daug daugiau galios. Galite tiksliai pasakyti „Excel“, ką ir kaip daryti. Taip pat gausite prieigą prie daug daugiau funkcijų ir galimybių. Jei reguliariai naudojate „Excel“, verta išmokti kurti VBA makrokomandas.





Pradėsime nuo pagrindų.





Kas yra VBA?

VBA yra „Visual Basic for Applications“ , programavimo kalba, kurią galite naudoti daugelyje „Microsoft“ programų. „Visual Basic“ yra programavimo kalba, o VBA-tai konkrečiai programai skirta versija. („Microsoft“ nutraukė „Visual Basic“ dar 2008 m., Tačiau VBA vis dar veikia gerai).

Laimei, ne programuotojams, VBA yra labai paprasta, o sąsaja, kurią naudojate redaguoti, suteikia daug pagalbos. Daugelis komandų, kurias naudosite, pasirodys iššokantys pasiūlymai ir automatiniai užbaigimai, padėsiantys greitai pasiekti scenarijų.



Vis dėlto VBA pripranta.

„VBA“ makrokomandų pranašumai „Excel“

Jei VBA yra sunkiau nei įrašyti makrokomandą, kodėl turėtumėte ją naudoti? Trumpas atsakymas yra tas, kad jūs gaunate daug daugiau energijos iš VBA makrokomandų.





Užuot spustelėję skaičiuoklę ir įrašę tuos paspaudimus, galite pasiekti visas „Excel“ funkcijas ir galimybes. Jums tiesiog reikia žinoti, kaip juos naudoti.

kodėl mano „iPhone“ nesiunčia teksto pranešimų?

Ir kai jums labiau patinka VBA, galite padaryti viską, ką galite padaryti įprastoje makrokomandoje per daug trumpesnį laiką. Rezultatai taip pat bus labiau nuspėjami, nes sakote „Excel“ tiksliai ką daryti. Visiškai neaiškumų nėra.





Sukūrę VBA makrokomandą, ją lengva išsaugoti ir bendrinti, kad visi kiti galėtų ja pasinaudoti. Tai ypač naudinga, kai dirbate su daugybe žmonių, kuriems „Excel“ reikia atlikti tuos pačius veiksmus.

Pažiūrėkime į paprastą VBA makrokomandą, kad pamatytume, kaip ji veikia.

VBA makrokomandos „Excel“ pavyzdys

Pažvelkime į paprastą makrokomandą. Mūsų skaičiuoklėje yra darbuotojų vardai, parduotuvės, kurioje darbuotojai dirba, numeris ir ketvirčio pardavimai.

Ši makrokomanda pridės ketvirčio pardavimus iš kiekvienos parduotuvės ir įrašys šias sumas į skaičiuoklės langelius (jei nesate tikri, kaip pasiekti VBA dialogą, patikrinkite mūsų VBA apžvalga čia ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

Tai gali atrodyti ilgai ir sudėtingai, tačiau mes ją išskaidysime, kad galėtumėte pamatyti atskirus elementus ir šiek tiek sužinoti apie VBA pagrindus.

Deklaruoti Sub

Modulio pradžioje turime „Sub StoreSales ()“. Tai apibrėžia naują antrinį pavadinimą „StoreSales“.

Taip pat galite apibrėžti funkcijas --- skirtumas tas, kad funkcijos gali grąžinti reikšmes, o antrinės-ne (jei esate susipažinęs su kitomis programavimo kalbomis, subs yra metodų atitikmuo). Tokiu atveju mums nereikia grąžinti vertės, todėl naudojame antrinį.

Modulio pabaigoje turime „End Sub“, kuris „Excel“ nurodo, kad baigėme šią VBA makrokomandą.

Kintamųjų deklaravimas

Pirmosios mūsų scenarijaus kodo eilutės prasideda „Dim“. Dim yra VBA komanda kintamajam deklaruoti.

Taigi „Dim Sum1“ sukuria naują kintamąjį „Sum1“. Tačiau „Excel“ turime pasakyti, koks tai kintamasis. Turime pasirinkti duomenų tipą. VBA yra daug skirtingų duomenų tipų-galite rasti visą sąrašą „Microsoft“ pagalbos dokumentuose .

Kadangi mūsų VBA makrokomanda susidurs su valiutomis, mes naudojame valiutos duomenų tipą.

Teiginys „Dim Sum1 as Currency“ nurodo „Excel“ sukurti naują valiutos kintamąjį, pavadintą Sum1. Kiekvienas kintamasis, kurį deklaruojate, turi turėti teiginį „As“, kad „Excel“ nurodytų jo tipą.

„For Loop“ paleidimas

Kilpai yra vieni galingiausių dalykų, kuriuos galite sukurti bet kuria programavimo kalba. Jei nesate susipažinę su kilpomis, peržiūrėkite šį „Do-While“ kilpų paaiškinimą. Šiame pavyzdyje naudojame ciklą „For“, kuris taip pat aprašytas straipsnyje.

Štai kaip atrodo kilpa:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

Tai nurodo „Excel“ kartoti mūsų nurodyto diapazono langelius. Mes naudojome a Diapazono objektas , kuris yra specifinis VBA objektų tipas. Kai mes jį naudojame taip-Diapazonas („C2: C51“)-„Excel“ nurodo, kad mus domina tos 50 langelių.

„Kiekvienam“ nurodo „Excel“, kad mes ką nors padarysime su kiekviena diapazono langeliu. „Kitas langelis“ ateina po visko, ką norime padaryti, ir liepia „Excel“ pradėti ciklą nuo pradžių (pradedant nuo kito langelio).

Mes taip pat turime šį teiginį: „Jei yra išjungta (ląstelė), tada išeikite“.

Ar galite atspėti, ką tai daro?

Pastaba: Griežtai tariant, „ciklo“ naudojimas galėjo būti geresnis pasirinkimas . Tačiau dėl mokymo aš nusprendžiau naudoti „For“ ciklą su išėjimu.

kur galima atsisiųsti filmą nemokamai

Jei tada kiti teiginiai

Šios makrokomandos esmė yra teiginiuose „Jei-tada-kitaip“. Štai mūsų sąlyginių teiginių seka:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

Daugeliu atvejų jūs tikriausiai galite atspėti, ką daro šie teiginiai. Galbūt nesate susipažinę su „ActiveCell“. „ActiveCell.Offset (0, -1)“ nurodo „Excel“ pažvelgti į langelį, esantį viename stulpelyje kairėje nuo aktyvios ląstelės.

Mūsų atveju tai liepia „Excel“ perskaityti parduotuvės numerio stulpelį. Jei „Excel“ randa 1 šiame stulpelyje, tada jis paima aktyvaus langelio turinį ir prideda jį prie „Sum1“. Jei jis randa 2, jis prideda aktyvios ląstelės turinį prie „Sum2“. Ir taip toliau.

„Excel“ peržiūri visus šiuos teiginius eilės tvarka. Jei sąlyginis teiginys yra patenkintas, jis užpildo „Tada“ teiginį. Jei ne, jis persikelia į kitą „ElseIf“. Jei viskas bus iki galo ir nebus įvykdyta nė viena sąlyga, ji nesiims jokių veiksmų.

Šią makrokomandą skatina ciklo ir sąlyginių sąlygų derinys. Ciklas nurodo „Excel“ eiti per kiekvieną pasirinktą langelį, o sąlyginiai nurodo, ką daryti su tuo langeliu.

Ląstelių vertybių rašymas

Galiausiai, mes turime parašyti savo skaičiavimų rezultatus į langelius. Štai eilutės, kurias naudojame tam:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

Naudodami „.Value“ ir lygybės ženklą, kiekvienai iš šių ląstelių nustatome vieno iš mūsų kintamųjų vertę.

Štai ir viskas! Mes sakome „Excel“, kad baigėme rašyti šį poskyrį su „End Sub“, o VBA makrokomanda baigta.

Kai vykdome makrokomandą su Makrokomandos mygtuką Programuotojas skirtuką, mes gauname savo sumas:

„VBA“ blokų sujungimas „Excel“

Kai pirmą kartą pažvelgsite į aukščiau pateiktą VBA makrokomandą, ji atrodo gana sudėtinga. Tačiau suskaidžius jį į sudedamąsias dalis, logika tampa aiški. Kaip ir bet kuri scenarijų kalba, reikia laiko priprasti prie VBA sintaksės.

Tačiau praktikuodami sukursite savo VBA žodyną ir galėsite greičiau, tiksliau ir daug daugiau galios rašyti makrokomandas, nei kada nors galėtumėte jas įrašyti.

Kai įstrigote, „Google“ paieškos vykdymas yra greitas būdas gauti atsakymus į VBA klausimus. Ir „Microsoft“ „Excel“ VBA nuoroda gali būti naudingas, jei norite jį išsiaiškinti ir rasti techninį atsakymą.

Kai jums patinka pagrindai, galite pradėti naudoti VBA tokiems dalykams kaip laiškų siuntimas iš „Excel“ , eksportuoti „Outlook“ užduotis ir rodyti kompiuterio informaciją.

ar galite užsidirbti pinigų žaisdami vaizdo žaidimus
Dalintis Dalintis „Tweet“ Paštu Štai kodėl FTB paskelbė įspėjimą dėl „Hive Ransomware“

FTB paskelbė įspėjimą dėl ypač bjaurios išpirkos programų. Štai kodėl turite būti ypač atsargūs dėl „Hive“ išpirkos programos.

Skaityti toliau
Susijusios temos
  • Produktyvumas
  • Skaičiuoklė
  • „Microsoft Excel“
  • „Microsoft Office 2016“
  • Makrokomandos
  • Kodavimo pamokos
Apie autorių Tada Olbraitas(Paskelbti 506 straipsniai)

Danas yra turinio strategijos ir rinkodaros konsultantas, padedantis įmonėms generuoti paklausą ir potencialius klientus. Jis taip pat rašo tinklaraščius apie strategiją ir turinio rinkodarą dannalbright.com.

Daugiau iš Dann Albright

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia