Usoro "ọrụ" na "Sub" na VBA

Ọrụ VBA arụnyere n'ime ya

Tupu ịmalite ịmepụta ọrụ VBA nke gị, ọ dị mma ịmara na Excel VBA nwere nchịkọta bara ụba nke arụrụ arụrụ arụ ọrụ nke ị nwere ike iji mgbe ị na-ede koodu gị.

Enwere ike ịhụ ndepụta nke ọrụ ndị a na VBA nchịkọta akụkọ:

  • Mepee akwụkwọ ọrụ Excel wee malite nchịkọta akụkọ VBA (pịa ime nke a F11 dị elu), wee pịa F2.
  • Họrọ ọba akwụkwọ site na ndetu ndọpụta dị n'elu aka ekpe nke ihuenyo ahụ VBA.
  • Ndepụta nke klaasị na ọrụ VBA arụnyere n'ime ga-apụta. Pịa aha ọrụ iji gosipụta nkọwa ya dị nkenke na ala nke mpio ahụ. ịpị F1 ga-emeghe ibe enyemaka dị n'ịntanetị maka njirimara ahụ.

Na mgbakwunye, enwere ike ịhụ ndepụta zuru oke nke ọrụ VBA arụnyere na ihe atụ na Visual Basic Developer Center.

Usoro omenala "Ọrụ" na "Sub" na VBA

Na Excel Visual Basic, a na-etinye usoro iwu na-arụ otu ọrụ na usoro. ọrụ (Ọrụ) ma ọ bụ sub (Subroutine). Isi ihe dị iche n'etiti usoro ọrụ и sub nke ahụ bụ usoro ọrụ na-eweghachi nsonaazụ, usoro sub -ọ bụghị.

Ya mere, ọ bụrụ na ịchọrọ ịrụ ọrụ ma nweta nsonaazụ ụfọdụ (dịka ọmụmaatụ, nchịkọta ọnụ ọgụgụ dị iche iche), mgbe ahụ, a na-ejikarị usoro ahụ eme ihe ọrụ, na iji mee ụfọdụ omume (dịka ọmụmaatụ, gbanwee nhazi nke otu mkpụrụ ndụ), ịkwesịrị ịhọrọ usoro ahụ. sub.

Arụmụka

Enwere ike ịnyefe data dị iche iche na usoro VBA site na iji arụmụka. A na-akọwapụta ndepụta arụmụka mgbe ị na-ekwupụta usoro. Dịka ọmụmaatụ, usoro ahụ sub na VBA na-agbakwụnye integer nyere (Integer) na cell ọ bụla na mpaghara ahọpụtara. Ị nwere ike ịnyefe nọmba a na usoro site na iji arụmụka, dị ka nke a:

Sub AddToCells(m As Integer) ... Ọgwụgwụ Sub

Buru n'uche na inwe arụmụka maka usoro ọrụ и sub na VBA bụ nhọrọ. Ụfọdụ usoro anaghị achọ arụmụka.

Arụmụka nhọrọ

Usoro VBA nwere ike ịnwe arụmụka nhọrọ. Ndị a bụ arụmụka nke onye ọrụ nwere ike ịkọwa ma ọ bụrụ na ha chọrọ, ma ọ bụrụ na ahapụ ya, usoro ahụ na-eji ụkpụrụ ndabara maka ha.

Nlaghachi na ọmụmaatụ gara aga, iji mee arụmụka integer na nhọrọ nhọrọ, a ga-ekwupụta ya dị ka nke a:

Sub AddToCells (Nhọrọ na As Integer = 0)

N'okwu a, arụmụka integer i ndabara ga-abụ 0.

Enwere ike inwe ọtụtụ arụmụka nhọrọ na usoro, ha niile edepụtara na njedebe nke ndepụta arụmụka.

Na-agafe arụmụka site na uru na site na ntụnye aka

Enwere ike ịfefe arụmụka na VBA na usoro n'ụzọ abụọ:

  • ByVal - na-agafe arụmụka site na uru. Nke a pụtara na ọ bụ naanị uru (ya bụ, otu arụmụka) ka a na-agafe na usoro ahụ, ya mere mgbanwe ọ bụla e mere na arụmụka n'ime usoro ahụ ga-efunahụ mgbe usoro ahụ ga-apụ.
  • Site Ref - na-agafe arụmụka site na ntụnye aka. Ya bụ, ezi adreesị nke ebe arụmụka na ebe nchekwa na-agafere na usoro. A ga-echekwa mgbanwe ọ bụla emere na arụmụka n'ime usoro ahụ mgbe usoro ahụ ga-apụ.

Iji mkpụrụokwu ByVal or Site Ref na nkwupụta usoro, ị nwere ike ịkọwapụta ka esi agafe arụmụka ahụ na usoro ahụ. Egosiri nke a n'ihe atụ n'okpuru:

Sub AddToCells(ByVal na As Integer) ... Ọgwụgwụ Sub
N'okwu a, arụmụka integer i gafere site uru. Mgbe ịhapụ usoro ahụ sub niile mere na i mgbanwe ga-efunahụ.
Sub AddToCells(ByRef na As Integer) ... Ọgwụgwụ Sub
N'okwu a, arụmụka integer i gafere site ntụaka. Mgbe ịhapụ usoro ahụ sub niile mere na i A ga-echekwa mgbanwe ndị ahụ na mgbanwe nke agafere na usoro ahụ sub.

Cheta na a na-agafe arụmụka na VBA site na ndabara. N'ikwu ya n'ụzọ ọzọ, ọ bụrụ na anaghị eji isi okwu eme ihe ByVal or Site Ref, mgbe ahụ, a ga-agafe arụmụka ahụ site na ntụnye aka.

Tupu ịga n'ihu na usoro ọrụ и sub n'ụzọ zuru ezu karị, ọ ga-aba uru ileba anya ọzọ na njirimara na ọdịiche dị n'etiti ụdị usoro abụọ a. Ndị a bụ mkparịta ụka dị mkpirikpi nke usoro VBA ọrụ и sub E gosikwara ihe atụ ndị dị mfe.

Usoro VBA "ọrụ"

Onye nchịkọta akụkọ VBA ghọtara usoro ahụ ọrụmgbe ọ zutere otu iwu agbakwunyere n'etiti nkwupụta mmeghe na mmechi ndị a:

Ọrụ ... Ọrụ Ọgwụgwụ

Dị ka e kwuru na mbụ, usoro ọrụ na VBA (na-emegide sub) weghachi uru. Iwu ndị a na-emetụta ụkpụrụ nloghachi:

  • A ga-ekwupụtarịrị ụdị data nke uru nloghachi na nkụnye eji isi mee nke usoro a ọrụ.
  • A ga-akpọrịrị mgbanwe nke nwere uru nloghachi dịka usoro ahụ ọrụ. Achọghị ka e kwupụta mgbanwe a iche iche, ebe ọ na-adị mgbe niile dịka akụkụ dị mkpa nke usoro ahụ. ọrụ.

E gosipụtara nke a nke ọma n'ihe atụ na-esonụ.

Ihe Nlereanya Ọrụ VBA: Ịrụ ọrụ mgbakọ na mwepụ na ọnụọgụ 3

Ndị a bụ ọmụmaatụ koodu usoro VBA ọrụ, nke na-ewe arụmụka atọ nke ụdị Ugboro abụọ (ọnụọgụ na-ese n'elu mmiri okpukpu abụọ). N'ihi ya, usoro ahụ na-eweghachi nọmba ọzọ nke ụdị Ugboro abụọnhata na nchikota nke arụmụka abụọ mbụ ma ewezuga arụmụka nke atọ:

Ọrụ SumMinus(dNum1 Dị ka Ugboro abụọ, dNum2 Dị Ugboro Abụọ, dNum3 Dị Ka Ugboro Abụọ) Dị Ka Ugboro Abụọ SumMinus = dNum1 + dNum2 - dNum3 Ọrụ Ọgwụgwụ

Usoro VBA a dị mfe ọrụ na-egosi otu esi agafe data na usoro site na arụmụka. Ị nwere ike ịhụ na a kọwapụtara ụdị data nke usoro ahụ weghachiri dị ka Ugboro abụọ (okwu na-ekwu Dị ka okpukpu abụọ mgbe ndepụta arụmụka). Ihe atụ a na-egosikwa otú nsonaazụ nke usoro ahụ si pụta ọrụ echekwara na mgbanwe nwere otu aha dị ka aha usoro.

Ịkpọ usoro VBA "ọrụ"

Ọ bụrụ na n'elu mfe usoro ọrụ etinyere n'ime modul na Visual Basic editọ, enwere ike ịkpọ ya site na usoro VBA ndị ọzọ ma ọ bụ jiri ya na mpempe akwụkwọ ọrụ na akwụkwọ ọrụ Excel.

Kpọọ usoro VBA "Ọrụ" site na usoro ọzọ

usoro ọrụ enwere ike ịkpọ ya site na usoro VBA ọzọ site na ịnye usoro ahụ na mgbanwe. Ihe atụ na-esonụ na-egosi ọkpụkpọ oku na usoro Summinus, nke akọwara n'elu.

Ngụkọta nke isi () ngụkọta dị ka okpukpu abụọ = SumMinus(5, 4, 3) Nkebi ngwụcha

Kpọọ usoro VBA "Ọrụ" site na akwụkwọ ọrụ

Usoro VBA ọrụ enwere ike ịkpọ ya site na mpempe akwụkwọ Excel n'otu ụzọ ahụ arụrụ ọrụ Excel ọ bụla. Ya mere, usoro e kere na ihe atụ gara aga ọrụ - Summinus enwere ike ịkpọ site na itinye okwu a n'ime cell mpempe akwụkwọ:

=SumMinus(10, 5, 2)

Usoro VBA "Sub"

Onye nchịkọta akụkọ VBA ghọtara na e nwere usoro n'ihu ya submgbe ọ zutere otu iwu agbakwunyere n'etiti nkwupụta mmeghe na mmechi ndị a:

Sub ... Ọgwụgwụ Sub

Usoro VBA “Sub”: Ọmụmaatụ 1. Ndozi etiti na mgbanwe nha mkpụrụedemede n'ụdị sel ahọpụtara

Tụlee ihe atụ nke usoro VBA dị mfe sub, onye ọrụ ya bụ ịgbanwe nhazi usoro mkpụrụ ndụ ahọpụtara. Selụ ndị ahụ gbadoro ụkwụ n'etiti (ma na kwụ ọtọ ma n'ahịrị) ma gbanwee nha font ka ọ bụrụ onye ọrụ akọwapụtara:

Sub Format_Centered_And_Sized(Nhọrọ iFontSize Dị ka Integer = 10) Nhọrọ.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Size = iFontSize End Sub.

Usoro a sub na-eme omume mana ọ naghị eweghachi nsonaazụ.

Ọmụmaatụ a na-ejikwa arụmụka nhọrọ Ogo Font. Ọ bụrụ na arụmụka Ogo Font agafeghị na usoro sub, mgbe ahụ, uru ndabere ya bụ 10. Otú ọ dị, ọ bụrụ na arụmụka Ogo Font gafere na usoro sub, mgbe ahụ, a ga-edobe ụdị mkpụrụ ndụ ahọpụtara na nha font nke onye ọrụ kwuru.

Usoro VBA: Ọmụmaatụ 2: Ndozi etiti na mkpụrụedemede siri ike na nso nso nke sel ahọpụtara

Usoro nke na-esonụ yiri nke a tụlere ugbu a, mana oge a, kama ịmegharị nha, ọ na-etinye ụdị mkpụrụedemede obi ike n'ụdị mkpụrụ ndụ ahọpụtara. Nke a bụ usoro ihe atụ sub, nke na-enweghị arụmụka:

Sub Format_Centered_And_Bold() Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Bold = Ezi Ọgwụgwụ Sub.

Ịkpọ usoro "Sub" na Excel VBA

Kpọọ usoro VBA "Sub" site na usoro ọzọ

Ka ịkpọọ usoro VBA sub site na usoro VBA ọzọ, ịkwesịrị ide isiokwu Call, aha usoro sub na n'ihu na akara aka bụ arụmụka nke usoro ahụ. Egosiri nke a n'ihe atụ n'okpuru:

Sub isi() Oku Format_Centered_And_Sized(20) Sub isi

Ọ bụrụ na usoro Usoro_Centered_Na_Sized nwere ihe karịrị otu arụmụka, a ga-ekewarịrị ha site na rikoma. Dị ka nke a:

Sub main() Kpọọ Format_Centered_And_Sized(arg1, arg2, ...) Ọgwụgwụ Sub

Kpọọ usoro VBA "Sub" site na akwụkwọ ọrụ

usoro sub enweghị ike ịbanye ozugbo na cell mpempe akwụkwọ Excel, dịka enwere ike ịme ya na usoro ọrụn'ihi na usoro sub anaghị eweghachi uru. Otú ọ dị, usoro sub, nke na-enweghị arụmụka ma kwupụta dị ka Public (dị ka egosiri n'okpuru) ga-adị maka ndị ọrụ nke akwụkwọ ọrụ ahụ. Ya mere, ọ bụrụ na usoro dị mfe a tụlere n'elu sub tinye n'ime modul na Visual Basic Editor, usoro Hazie_Centered_Na_Bold ga-adị maka ojiji na akwụkwọ ọrụ Excel, yana usoro Usoro_Centered_Na_Sized - agaghị adị n'ihi na ọ nwere arụmụka.

Nke a bụ ụzọ dị mfe iji mee (ma ọ bụ mebie) usoro sub, dị na mpempe akwụkwọ ọrụ:

  • Press F8 dị elu (pịa igodo Alt ma ka ị na-ejide ya, pịa igodo F8).
  • N'ime ndepụta macros na-egosi, họrọ nke ịchọrọ ịgba ọsọ.
  • Press Run (gbaa)

Iji mee usoro sub ngwa ngwa na mfe, ị nwere ike ekenye ya ụzọ mkpirisi ahụigodo. Maka nke a:

  • Press F8 dị elu.
  • N'ime ndepụta macros na-egosi, họrọ nke ịchọrọ ikenye ụzọ mkpirisi ahụigodo na ya.
  • Press kwa (Nhọrọ) na n'ime igbe okwu na-egosi, tinye ụzọ mkpirisi ahụigodo.
  • Press OK ma mechie dialog Macro (Macro).

ige nti: Mgbe ị na-ekenye ụzọ mkpirisi ahụigodo na nnukwu macro, gbaa mbọ hụ na ejighị ya dị ka ọkọlọtọ na Excel (dịka ọmụmaatụ, Ctrl + C). Ọ bụrụ na ịhọrọ ụzọ mkpirisi ahụigodo dị adị, a ga-ekenye ya na nnukwu, n'ihi ya, onye ọrụ nwere ike ịmalite nnukwu macro na mberede.

Oke Usoro VBA

Akụkụ 2 nke nkuzi a tụlere oke mgbanwe na mgbanwe na ọrụ nke mkpụrụokwu. Public и Private. Enwere ike iji usoro VBA jiri mkpụrụokwu ndị a:

Sub AddToCells Ọha (m Dị ka Integer) ... Ọgwụgwụ Sub
Ọ bụrụ na nkwupụta usoro ahụ na-ebute ụzọ site na isiokwu Public, mgbe ahụ usoro a ga-adị maka modul niile na ọrụ VBA ahụ.
Nkeonwe Sub AddToCells(m As Integer) ... Ọgwụgwụ Sub
Ọ bụrụ na nkwupụta usoro ahụ na-ebute ụzọ site na isiokwu Private, mgbe ahụ usoro a ga-adị naanị maka modul dị ugbu a. Enweghị ike ịkpọ ya mgbe ọ dị na modul ọ bụla ma ọ bụ site na akwụkwọ ọrụ Excel.

Cheta na ọ bụrụ na tupu ikwuwapụta usoro VBA ọrụ or sub etinyeghi isiokwu okwu, edobere ihe eji eme ihe maka usoro a Public (ya bụ, ọ ga-adị ebe niile na ọrụ VBA a). Nke a dị iche na nkwupụta mgbanwe, nke na ndabara bụ Private.

Ọpụpụ mbụ na usoro VBA "Ọrụ" na "Sub"

Ọ bụrụ na ịchọrọ ịkwụsị njedebe nke usoro VBA ọrụ or sub, na-echeghị njedebe okike ya, mgbe ahụ maka nke a enwere ndị ọrụ Ọrụ ọpụpụ и Itzọ ọpụpụ. Ojiji nke ndị ọrụ a gosipụtara n'okpuru iji usoro dị mfe dịka ọmụmaatụ. ọrụA na-atụ anya ịnata arụmụka dị mma iji rụọ ọrụ ọzọ. Ọ bụrụ na agafere uru na-adịghị mma na usoro ahụ, mgbe ahụ enweghị ike ịrụ ọrụ ọzọ, yabụ onye ọrụ kwesịrị igosi ozi njehie na usoro ahụ kwesịrị ịpụ ozugbo:

Ọrụ VAT_Amount(sVAT_Rate Dị Single) Dị ka Single VAT_Amount = 0 Ọ bụrụ sVAT_Rate <= 0 Mgbe ahụ, MsgBox "Atụrụ anya uru dị mma nke sVAT_Rate mana enwetara" & sVAT_Rate Ọpụpụ Ọrụ Akwụsị Ọ bụrụ ... Ọrụ Ọgwụgwụ

Biko mara na tupu emechaa usoro ọrụ - Ọnụ ego VAT, A na-etinye ọrụ VBA arụnyere n'ime koodu MsgBox, nke na-egosiputa mmapụta ịdọ aka ná ntị nye onye ọrụ.

Nkume a-aza