Isang Tutorial ng Baguhan sa Pagsulat ng VBA Macros sa Excel (At Bakit Dapat Mong Malaman)

Isang Tutorial ng Baguhan sa Pagsulat ng VBA Macros sa Excel (At Bakit Dapat Mong Malaman)

Maaari kang makatipid ng Excel Macros ng isang toneladang oras sa pamamagitan ng automating mga proseso ng Excel na madalas mong ginagamit . Ngunit ang macros ay talagang limitado. Madaling magkamali sa recording tool, at ang proseso ng pag-record ay mahirap.





Ang paggamit ng VBA upang lumikha ng macros ay nagbibigay sa iyo ng higit na lakas. Maaari mong sabihin sa Excel nang eksakto kung ano ang dapat gawin at kung paano ito gawin. Makakakuha ka rin ng pag-access sa mas maraming mga pag-andar at kakayahan. Kung regular kang gumagamit ng Excel, sulit na malaman kung paano lumikha ng VBA macros.





Magsisimula kami sa mga pangunahing kaalaman.





Ano ang VBA?

Ang VBA ay Visual Basic para sa Mga Aplikasyon , isang wika sa pagprograma na maaari mong gamitin sa maraming mga app ng Microsoft. Ang Visual Basic ay isang wika sa pagprograma, at ang VBA ay ang bersyon na tukoy sa application nito. (Ipinagpatuloy ng Microsoft ang Visual Basic noong 2008, ngunit ang VBA ay magiging malakas pa rin).

Sa kasamaang palad para sa mga hindi programmer, ang VBA ay napakasimple, at ang interface na ginagamit mo upang i-edit ito ay nag-aalok ng maraming tulong. Marami sa mga utos na gagamitin mo ang mga pop up na mungkahi at awtomatikong pagkumpleto, na tumutulong sa iyo na mabilis na gumana ang iyong script.



Gayunpaman, tumatagal ang VBA upang masanay.

Ang Mga kalamangan ng VBA Macros sa Excel

Kung ang VBA ay mas mahirap kaysa sa pagrekord ng isang macro, bakit mo ito gagamitin? Ang maikling sagot ay nakakakuha ka ng mas maraming lakas mula sa VBA macros.





Sa halip na mag-click sa paligid ng iyong spreadsheet at itala ang mga pag-click na iyon, maaari mong ma-access ang buong hanay ng mga pag-andar at kakayahan ng Excel. Kailangan mo lamang malaman kung paano gamitin ang mga ito.

ano ang pinaka walang pinapanigan na balita

At sa sandaling mas komportable ka sa VBA, magagawa mo ang lahat ng mga bagay na maaari mong gawin sa isang regular na macro sa mas kaunting oras. Ang mga resulta ay magiging mas mahuhulaan din, habang sinasabi mo sa Excel saktong anong gagawin. Wala naman siguridad.





Sa sandaling nalikha mo ang iyong VBA macro, madali itong i-save at ibahagi ito upang ang sinoman ay maaaring samantalahin din ito. Lalo itong kapaki-pakinabang kapag nagtatrabaho ka sa maraming tao na kailangang gawin ang parehong mga bagay sa Excel.

Tingnan natin ang isang simpleng VBA macro upang makita kung paano ito gumagana.

Isang Halimbawa ng isang VBA Macro sa Excel

Tingnan natin ang isang simpleng macro. Naglalaman ang aming spreadsheet ng mga pangalan ng mga empleyado, ang numero ng tindahan kung saan nagtatrabaho ang mga empleyado, at ang kanilang quarterly sales.

Ang makro na ito ay magdaragdag ng quarterly sales mula sa bawat tindahan at isusulat ang mga kabuuan na iyon sa mga cell sa spreadsheet (kung hindi ka sigurado kung paano i-access ang VBA dialog, tingnan ang ang aming walkthrough ng VBA dito ):

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

Maaari itong magmukhang mahaba at kumplikado, ngunit paghiwalayin namin ito upang makita mo ang mga indibidwal na elemento at matuto nang kaunti tungkol sa mga pangunahing kaalaman sa VBA.

Pagdeklara ng Sub

Sa simula ng modyul, mayroon kaming 'Sub StoreSales ()'. Tinutukoy nito ang isang bagong sub na tinatawag na StoreSales.

Maaari mo ring tukuyin ang mga pag-andar --- ang pagkakaiba ay ang mga pagpapaandar ay maaaring ibalik ang mga halaga, at hindi maaaring ang subs (kung pamilyar ka sa ibang mga wika sa pagprograma, ang subs ay katumbas ng mga pamamaraan). Sa kasong ito, hindi namin kailangang ibalik ang isang halaga, kaya gumagamit kami ng isang sub.

Sa pagtatapos ng module, mayroon kaming 'End Sub,' na nagsasabi sa Excel na tapos na kami sa VBA macro.

Pagdeklara ng Mga variable

Ang mga unang linya ng code sa aming script ay nagsisimula sa 'Dim.' Ang Dim ay utos ng VBA para sa pagdedeklara ng variable.

Kaya't ang 'Dim Sum1' ay lumilikha ng isang bagong variable na tinatawag na 'Sum1.' Gayunpaman, kailangan naming sabihin sa Excel kung anong uri ng variable ito. Kailangan naming pumili ng isang uri ng data. Maraming iba't ibang mga uri ng data sa VBA --- mahahanap mo ang buong listahan sa mga dokumento ng tulong ng Microsoft .

Dahil ang aming VBA macro ay makikipag-usap sa mga pera, gumagamit kami ng uri ng data ng Pera.

Ang pahayag na 'Dim Sum1 As Currency' ay nagsasabi sa Excel na lumikha ng isang bagong variable ng Pera na tinatawag na Sum1. Ang bawat variable na iyong idineklara ay kailangang magkaroon ng isang pahayag na 'Bilang' upang sabihin sa Excel ang uri nito.

Simula ng isang Para sa Loop

Ang mga loop ay ilan sa mga pinakamakapangyarihang bagay na maaari mong likhain sa anumang wika ng programa. Kung hindi ka pamilyar sa mga loop, suriin ang paliwanag na ito ng mga loop na Do-While. Sa halimbawang ito, gumagamit kami ng isang Para sa loop, na sakop din sa artikulo.

Narito kung ano ang hitsura ng loop:

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

Sinasabi nito sa Excel na umulit sa pamamagitan ng mga cell sa saklaw na tinukoy namin. Nagamit na namin ang a Saklaw na bagay , na kung saan ay isang tukoy na uri ng bagay sa VBA. Kapag ginamit namin ito sa ganitong paraan --- Saklaw ('C2: C51') --- sinasabi nito sa Excel na interesado kami sa 50 mga cell na iyon.

Sinasabi ng 'Para sa Bawat' sa Excel na may gagawin kami sa bawat cell sa saklaw. Ang 'Susunod na Cell' ay dumating pagkatapos ng lahat ng nais naming gawin, at sasabihin sa Excel na simulan ang loop mula sa simula (simula sa susunod na cell).

Mayroon din kaming pahayag na ito: 'Kung IsEmpty (Cell) Pagkatapos Lumabas Para.'

Mahulaan mo ba kung ano ang ginagawa nito?

Tandaan: Mahigpit na pagsasalita, ang paggamit ng isang Habang loop ay maaaring maging isang mas mahusay na pagpipilian . Gayunpaman, alang-alang sa pagtuturo, nagpasya akong gumamit ng For loop na may Exit.

sino ang hindi susunod sa akin pabalik sa instagram online

Kung-Pagkatapos-Iba Pang Mga Pahayag

Ang core ng partikular na macro na ito ay nasa mga pahayag na If-Then-Else. Narito ang aming pagkakasunud-sunod ng mga kondisyong pahayag:

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

Sa karamihan ng bahagi, maaari mong hulaan kung ano ang ginagawa ng mga pahayag na ito. Maaaring hindi ka pamilyar sa ActiveCell. Gayunpaman, ang Offset. Sinasabi ng 'ActiveCell.Offset (0, -1)' sa Excel na tingnan ang cell na isang haligi sa kaliwa ng aktibong cell.

Sa aming kaso, sinasabi sa Excel na kumunsulta sa haligi ng numero ng tindahan. Kung nakakahanap ang Excel ng 1 sa haligi na ito, kukuha ng mga nilalaman ng aktibong cell at idagdag ito sa Sum1. Kung nakakita ito ng isang 2, nagdaragdag ito ng mga nilalaman ng aktibong cell sa Sum2. At iba pa.

Dumaan ang Excel sa lahat ng mga pahayag na ito sa pagkakasunud-sunod. Kung ang kondisyon na pahayag nasiyahan, nakumpleto nito ang pahayag na Pagkatapos. Kung hindi, lumilipat ito sa susunod na ElseIf. Kung makakarating hanggang sa wakas at wala sa mga kundisyon ang nasiyahan, hindi ito gagawa ng anumang aksyon.

Ang kumbinasyon ng loop at ang mga kondisyonal ay ang nagtutulak sa macro na ito. Sinasabi ng loop na Excel na dumaan sa bawat cell sa pagpipilian, at sasabihin ito ng mga kondisyonal kung ano ang gagawin sa cell na iyon.

Pagsusulat ng Mga Halaga ng Cell

Panghuli, nakakasulat kami ng mga resulta ng aming mga kalkulasyon sa mga cell. Narito ang mga linya na ginagamit namin upang gawin iyon:

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

Sa '.Value' at isang katumbas na pag-sign, itinakda namin ang bawat isa sa mga cell na iyon sa halaga ng isa sa aming mga variable.

At yun lang! Sinasabi namin sa Excel na tapos na kaming magsulat ng Sub na ito ng 'End Sub,' at kumpleto ang macro ng VBA.

Kapag pinatakbo namin ang macro kasama ang Macros pindutan sa Developer tab, nakukuha namin ang aming mga kabuuan:

Pagsasama-sama ng Mga Block of Building ng VBA sa Excel

Kapag una mong tiningnan ang VBA macro sa itaas, mukhang kumplikado ito. Ngunit pagkatapos na paghiwalayin ito sa mga nasasakupang bahagi nito, nagiging malinaw ang lohika. Tulad ng anumang wika sa pag-script, nangangailangan ng oras upang masanay sa syntax ng VBA.

Ngunit sa pagsasanay, mabubuo mo ang iyong bokabularyo ng VBA at makakapagsulat ng macros nang mas mabilis, mas tumpak, at may higit na lakas kaysa sa maaari mong maitala ang mga ito.

Kapag natigil ka, ang pagpapatakbo ng paghahanap sa Google ay isang mabilis na paraan upang masagot ang iyong mga katanungan sa VBA. At Sanggunian ng Excel VBA ng Microsoft ay maaaring maging kapaki-pakinabang kung nais mong maghukay dito para sa isang teknikal na sagot.

Kapag komportable ka sa mga pangunahing kaalaman, maaari mong simulang gamitin ang VBA para sa mga bagay tulad pagpapadala ng mga email mula sa Excel , pag-export ng mga gawain sa Outlook, at pagpapakita ng iyong impormasyon sa PC.

kung paano i-forward ng mail mula sa pananaw sa gmail
Magbahagi Magbahagi Mag-tweet Email Narito Bakit Naglabas ang FBI ng Babala para sa Hive Ransomware

Nag-isyu ang FBI ng isang babala tungkol sa isang partikular na hindi magandang pagsasama ng ransomware. Narito kung bakit kailangan mong maging maingat lalo na sa Hive ransomware.

Basahin Susunod
Mga Kaugnay na Paksa
  • Pagiging produktibo
  • Spreadsheet
  • Microsoft Excel
  • Microsoft Office 2016
  • Macros
  • Mga Tutorial sa Coding
Tungkol sa May-akda Tapos si Albright(506 Mga Artikulo Nai-publish)

Ang Dann ay isang diskarte sa nilalaman at consultant sa marketing na tumutulong sa mga kumpanya na makabuo ng demand at lead. Nagba-blog din siya tungkol sa diskarte at marketing ng nilalaman sa dannalbright.com.

Higit pa Mula kay Dann Albright

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe