"Mahi" me te "Sub" Nga tikanga i roto i te VBA

Nga Mahi VBA Hanga-i

I mua i to tiimata ki te hanga i a koe ake mahi VBA, he pai ki te mohio kei a Excel VBA he kohinga nui o nga mahi hanga-mua ka taea e koe te whakamahi i te wa e tuhi ana i to waehere.

Ka taea te tiro i te rarangi o enei mahi i roto i te ētita VBA:

  • Whakatuwheratia he pukamahi Excel ka whakarewahia te ētita VBA (paohia kia mahia tenei Alt + F11), ka peehi F2.
  • Tīpakohia he whare pukapuka mai i te rarangi takaiho kei te taha maui o runga o te mata VBA.
  • Ka puta mai he rarangi o nga karaehe me nga mahi VBA i hangaia. Patohia te ingoa mahi hei whakaatu i tana whakaahuatanga poto i raro o te matapihi. te pehi F1 ka whakatuwhera i te wharangi awhina ipurangi mo taua ahuatanga.

I tua atu, ka kitea he rarangi katoa o nga mahi VBA kua hangaia me nga tauira i te Visual Basic Developer Center.

Nga tikanga ritenga "Mahi" me te "Sub" i roto i te VBA

I roto i te Excel Visual Basic, ka whakatakotoria he huinga whakahau e mahi ana i tetahi mahi motuhake ki roto i tetahi tikanga. taumahi (Mahi) ranei Sub (Tuhinga iti). Ko te rereketanga nui i waenga i nga tikanga taumahi и Sub koia tena te tikanga taumahi whakahoki hua, tikanga Sub – kare.

Na, ki te hiahia koe ki te mahi i nga mahi me te whiwhi i etahi hua (hei tauira, whakahiatohia nga tau maha), ka whakamahia te tikanga taumahi, me te mahi noa i etahi mahi (hei tauira, whakarereke i te whakatakotoranga o te roopu o nga pūtau), me whiriwhiri koe i te tikanga Sub.

Nga tautohe

He maha nga raraunga ka taea te tuku ki nga tikanga VBA ma te whakamahi tautohetohe. Ka tohua te rarangi tautohe i te wa e whakapuaki ana i tetahi tikanga. Hei tauira, te tukanga Sub i roto i te VBA ka taapirihia te tauoti (Tauoti) ki ia pūtau i te awhe kua tohua. Ka taea e koe te tuku i tenei tau ki te tukanga ma te whakamahi i te tautohetohe, penei:

Sub AddToCells(i As Integer) ... Whakamutua Sub

Kia maumahara kei te whai tohenga mo nga tikanga taumahi и Sub i roto i te VBA he mea whiriwhiri. Ko etahi o nga tikanga kaore e hiahiatia he tautohetohe.

Tohenga Kōwhiringa

Ka taea e nga tukanga VBA te whai tautohetohe. He tohenga enei ka taea e te kaiwhakamahi te tohu mena e hiahia ana ratou, a ki te waihohia, ka whakamahia e te tikanga nga uara taunoa mo ratou.

Ka hoki ki te tauira o mua, ki te hanga i te tautohenga tauoti ki tetahi taumahi hei kowhiringa, ka penei te whakaatu:

Sub AddToCells(Kōwhiringa hei Tauoti = 0)

I tenei take, ko te tautohe tauoti i ka 0 te taunoa.

He maha nga tohenga whiriwhiri i roto i tetahi tikanga, kua whakarārangihia katoa ki te mutunga o te rarangi tohenga.

Te tuku tohenga ma te uara me te tohutoro

Ko nga tautohetohe i roto i te VBA ka taea te tuku ki tetahi tikanga ma nga huarahi e rua:

  • ByVal – te tuku tohenga ma te uara. Ko te tikanga ko te uara anake (ara, he kape o te tohenga) ka tukuna ki te tikanga, na reira ka ngaro nga huringa ki te tautohe i roto i te tikanga ka puta te tikanga.
  • NaRef – te tuku tohenga ma te tohutoro. Arā, ko te wāhitau tūturu o te wāhi tautohe i roto i te mahara ka tukuna ki te hātepe. Ko nga huringa ka mahia ki te tautohe i roto i te tikanga ka tiakina ina puta te tikanga.

Te whakamahi kupumatua ByVal or NaRef i roto i te whakapuakanga tikanga, ka taea e koe te tohu me pehea te tuku i te tautohe ki te tikanga. Ka whakaatuhia tenei i nga tauira i raro nei:

Sub AddToCells(ByVal i As Integer) ... Whakamutunga Sub
I tenei take, ko te tautohe tauoti i i paahitia e te uara. I muri i te wehe i te tukanga Sub hanga katoa ki i ka ngaro nga huringa.
Sub AddToCells(ByRef i As Integer) ... Whakamutunga Sub
I tenei take, ko te tautohe tauoti i i paahitia e te tohutoro. I muri i te wehe i te tukanga Sub hanga katoa ki i ka penapena nga huringa ki te taurangi i tukuna ki te tikanga Sub.

Kia maumahara ko nga tautohetohe i roto i te VBA ka tukuna ma te tohutoro ma te taunoa. I etahi atu kupu, ki te kore e whakamahia nga kupu matua ByVal or NaRef, katahi ka tukuna te tautohe ma te tohutoro.

I mua i te haere ki nga tikanga taumahi и Sub i roto i nga korero taipitopito, he pai ki te titiro ano ki nga ahuatanga me nga rereketanga o enei momo tikanga e rua. E whai ake nei nga korero poto mo nga tikanga VBA taumahi и Sub me nga tauira ngawari ka whakaatuhia.

Te tukanga VBA "Mahi"

Ka mohio te ētita VBA ki te tukanga taumahika tutaki ki tetahi roopu whakahau kei waenganui i nga korero whakatuwhera me te kati e whai ake nei:

Mahi ... Whakamutunga Mahi

Ka rite ki te korero i mua, ko te tukanga taumahi i roto i te VBA (he rereke ki te Sub) ka whakahokia he uara. Ko nga ture e whai ake nei ka pa ki te whakahoki i nga uara:

  • Ko te momo raraunga o te uara whakahoki me whakaatu ki te pane o te tukanga taumahi.
  • Ko te taurangi kei roto te uara whakahoki me whakaingoatia kia rite ki te tikanga taumahi. Ko tenei taurangi karekau e tika kia korero motuhake, na te mea kei te noho tonu hei waahanga o te tikanga. taumahi.

He pai te whakaatu o tenei i te tauira e whai ake nei.

He Tauira Mahi VBA: Te Mahi Matarau ki runga i nga Tau 3

E whai ake nei he tauira o te waehere tukanga VBA taumahi, e toru nga tohenga momo Double (tau-rua-tika-tika-tau-tau-ira-ira). Ko te mutunga mai, ka whakahokia e te tikanga tetahi atu momo momo Doublehe rite ki te tapeke o nga tohenga tuatahi e rua haunga te tohenga tuatoru:

Taumahi TapekeMinus(dNum1 Hei Ruarua, dNum2 Hei Ruarua, dNum3 Hei Ruarua) Hei Tapeke TauruaMinus = dNum1 + dNum2 - dNum3 Whakamutunga Taumahi

Ko tenei mahinga VBA tino ngawari taumahi he whakaatu pehea te tuku raraunga ki tetahi tikanga ma nga tautohetohe. Ka taea e koe te kite ko te momo raraunga i whakahokia mai e te tikanga kua tautuhia hei Double (e kii ana nga kupu Hei Ruarua i muri i te rarangi o nga tautohetohe). Ka whakaatu hoki tenei tauira i te hua o te mahi taumahi ka rongoa i roto i te taurangi he rite te ingoa ki te ingoa tikanga.

Te karanga i te tukanga VBA "Mahi"

Mena ko te tikanga ngawari o runga taumahi ka whakaurua ki roto i te kōwae i roto i te ētita Visual Basic, ka taea te karanga mai i etahi atu tikanga VBA ka whakamahia ranei ki runga pepa mahi i roto i te pukamahi Excel.

Karangatia te tikanga VBA "Mahi" mai i tetahi atu tikanga

hātepe taumahi ka taea te karanga mai i tetahi atu tikanga VBA ma te tuku noa i taua tikanga ki tetahi taurangi. Ko te tauira e whai ake nei e whakaatu ana i te karanga ki tetahi tikanga Summinus, i tautuhia i runga ake nei.

Sub main() Dim tape as Double tape = SumMinus(5, 4, 3) End Sub

Karangatia te tukanga VBA "Mahi" mai i te pepa mahi

Te tukanga VBA taumahi ka taea te karanga mai i te pepamahi Excel kia rite ki etahi atu mahinga Excel kua hangaia. Na reira, te tukanga i hanga i roto i te tauira o mua taumahi - Summinus Ka taea te karanga ma te whakauru i te korero e whai ake nei ki roto i te putau raumahi:

=SumMinus(10, 5, 2)

Te tukanga VBA "Sub"

Kei te mohio te ētita VBA he tikanga kei mua Subka tutaki ki tetahi roopu whakahau kei waenganui i nga korero whakatuwhera me te kati e whai ake nei:

Raro ... Whakamutunga Raro

Te tukanga VBA "Sub": Tauira 1. Te hurihanga o te pokapū me te huri i te rahi o te momotuhi i roto i te awhe o nga pūtau kua tohua

Whakaarohia he tauira o te mahinga VBA ngawari Sub, ko tana mahi he huri i te whakahōpututanga o te awhe pūtau kua tohua. Ko nga pūtau kei waenganui (poutū me te whakapae) ka huri te rahi momotuhi ki te kaiwhakamahi kua tohua:

Whakamutunga_Waenga_Me_Rahi(Kōwhiringa iFontSize Hei Integer = 10) Tīpakonga.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Size = iFontSize Whakamutunga Sub

Tenei mahinga Sub ka mahi i nga mahi engari kaore e whakahoki mai he hua.

Ka whakamahi hoki tenei tauira i te tautohe Kōwhiringa Rahi Momotuhi. Mena te tautohe Rahi Momotuhi kaore i tukuna ki te tukanga Sub, ko tona uara taunoa ko te 10. Heoi, ki te te tautohe Rahi Momotuhi tukuna ki te tukanga Sub, ka tautuhia te awhe o nga pūtau kua tohua ki te rahi momotuhi kua tohua e te kaiwhakamahi.

Tikanga Roroiti VBA: Tauira 2: Tirohanga Pokapū me te Momotuhi Maamaa ki te Awhe o nga Waea kua tohua

Ko te tikanga e whai ake nei he rite ki tera i korerohia ake nei, engari i tenei wa, kaua e whakarereke i te rahi, ka hoatu he momo momotuhi maia ki te awhe o nga pūtau kua tohua. He tauira tikanga tenei Sub, karekau he tautohetohe:

Sub Format_Centered_And_Bold() Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Bold = True End Sub

Te Waea "Tuhinga" i roto i te Excel VBA

Karangatia te tukanga VBA "Sub" mai i tetahi atu tikanga

Ki te karanga i te tikanga VBA Sub mai i tetahi atu tikanga VBA, me tuhi koe i te kupu matua Call, ingoa tukanga Sub a kei roto i nga reu nga tohenga o te tikanga. Ka whakaatuhia tenei ki te tauira i raro nei:

Sub main() Call Format_Centered_And_Sized(20) End Sub

Mena ko te tukanga Hōputu_Me_Rahi he nui ake i te kotahi tohenga, me wehe ki nga piko. Pēnei:

Sub main() Call Format_Centered_And_Sized(arg1, arg2, ...) End Sub

Karangatia te tukanga VBA "Sub" mai i te raumahi

hātepe Sub e kore e taea te kuhu tika ki roto i te pūtau rau Excel, ka taea te mahi me tetahi tikanga taumahino te mea ko te tikanga Sub e kore e whakahoki uara. Engari, ko nga tikanga Sub, karekau he tautohetohe, ka kiia hei Public (e whakaatu ana i raro nei) ka watea ki nga kaiwhakamahi o te raumahi. Na, ki te mea nga tikanga ngawari i korerohia i runga ake nei Sub ka whakauruhia ki roto i tetahi waahanga i roto i te Visual Basic Editor, te tikanga Hōputu_Me_Maia_Me_Maia ka watea mo te whakamahi i roto i te pepamahi Excel, me te tikanga Hōputu_Me_Rahi – kare e watea na te mea he tautohetohe.

Anei he huarahi ngawari ki te whakahaere (whakahaere ranei) i tetahi tikanga Sub, ka taea te uru mai i te raumahi:

  • press Alt + F8 (Pēhi kī alt a, i te wa e pupuri ana, pehia te ki F8).
  • I te rarangi tonotono ka puta, tohua te mea e hiahia ana koe ki te whakahaere.
  • press Whakahaere (oma)

Hei mahi i tetahi tukanga Sub tere me te ngawari, ka taea e koe te tautapa he pokatata papapātuhi ki a ia. Mo tenei:

  • press Alt + F8.
  • I te rarangi tonotono ka puta, tohua te mea e hiahia ana koe ki te tautapa he pokatata papapātuhi.
  • press tawhā (Kōwhiringa) ā, ki te pouaka kōrero ka puta, tāuruhia te pokatata papapātuhi.
  • press OK ka kati i te korero Tonotono (Totono).

whakatūpato: Ina tautapahia he pokatata papapātuhi ki te tonotono, me whakarite kia kaua e whakamahia hei paerewa i Excel (hei tauira, Ctrl + C). Ki te kowhiria e koe he pokatata papapātuhi o mua, ka tautapahia ano ki te tonotono, na reira, ka tiimata te kaiwhakamahi i te tonotono ohorere.

VBA Te Mahinga Mahi

Ko te wahanga 2 o tenei akoranga i korero mo te whanuitanga o nga taurangi me nga taurite me te mahi o nga kupumatua. Public и Private. Ka taea hoki enei kupumatua te whakamahi me nga tikanga VBA:

Tumatanui AddToCells(i Hei Tauoti) ... Whakamutunga Sub
Mēnā ko te whakapuakanga hātepe i mua i te kupu matua Public, ka watea te tikanga ki nga waahanga katoa o taua kaupapa VBA.
Sub AddToCells(i As Integer) ... Whakamutunga Sub
Mēnā ko te whakapuakanga hātepe i mua i te kupu matua Private, ka waatea noa tenei tikanga mo te waahanga o naianei. Kaore e taea te waea i a koe i roto i tetahi atu waahanga, mai i te pukamahi Excel ranei.

Kia mahara ki te mea i mua i te whakapuakitanga o te tikanga VBA taumahi or Sub karekau te kupu matua i whakauruhia, kua whakaritea te taonga taunoa mo te tikanga Public (ara, ka watea ki nga waahi katoa o tenei kaupapa VBA). He rereke tenei ki nga whakapuakanga taurangi, he mea taunoa Private.

Te putanga moata mai i nga tikanga VBA "Mahi" me te "Sub"

Mena ka hiahia koe ki te whakamutu i te mahinga o te tikanga VBA taumahi or Sub, me te kore e tatari mo tona mutunga taiao, na mo tenei kei reira nga kaiwhakahaere Puta Mahi и Putaatu Sub. Ko te whakamahinga o enei kaiwhakahaere e whakaatuhia ana i raro nei ma te whakamahi i tetahi tikanga ngawari hei tauira. taumahiA e tumanako ana ka whiwhi tohenga pai hei mahi i etahi atu mahi. Mena ka tukuna he uara kore-pai ki te tikanga, katahi ka kore e taea te whakahaere i etahi atu mahi, na me whakaatu ki te kaiwhakamahi he karere hapa ka puta tonu te tikanga:

Taumahi VAT_Moun(sVAT_Rate as Single) as Single VAT_Mount = 0 Ki te sVAT_Rate <= 0 Na MsgBox "I tumanakohia he uara pai o te sVAT_Rate engari kua riro mai" & sVAT_Rate Putanga Mahi Whakamutu Ki te ... Mutu Mahi

Kia mahara mai i mua i te whakaoti i te tukanga taumahi - Taake_Motu, ka whakauruhia he mahinga VBA kua hangaia ki roto i te waehere Pirimia, e whakaatu ana i te pakūake whakatūpato ki te kaiwhakamahi.

Waiho i te Reply