ʻO nā kaʻina hana "Function" a me "Sub" ma VBA

Nā Hana VBA i kūkulu ʻia

Ma mua o kou hoʻomaka ʻana e hana i kāu mau hana VBA ponoʻī, ʻoi aku ka maikaʻi o ka ʻike i ka Excel VBA he hōʻiliʻili waiwai o nā hana i kūkulu mua ʻia i hiki iā ʻoe ke hoʻohana i ke kākau ʻana i kāu code.

Hiki ke ʻike ʻia kahi papa inoa o kēia mau hana ma ka hoʻoponopono VBA:

  • E wehe i kahi puke hana Excel a hoʻomaka i ka hoʻoponopono VBA (e kaomi e hana i kēia Alt + F11), a laila kaomi F2.
  • E koho i kahi waihona mai ka papa inoa iho ma ka ʻaoʻao hema o ka pale ʻO VBA.
  • E ʻike ʻia kahi papa inoa o nā papa a me nā hana VBA i kūkulu ʻia. Kaomi ma ka inoa hana e hōʻike i kāna wehewehe pōkole ma lalo o ka puka makani. kaomi ana F1 e wehe i ka ʻaoʻao kōkua pūnaewele no kēlā hiʻohiʻona.

Eia kekahi, hiki ke loaʻa kahi papa inoa piha o nā hana VBA i kūkulu ʻia me nā hiʻohiʻona ma ka Visual Basic Developer Center.

Nā kaʻina hana maʻamau "Function" a me "Sub" ma VBA

Ma Excel Visual Basic, hoʻonohonoho ʻia nā kauoha e hana i kahi hana kikoʻī i kahi kaʻina hana. Launch (Hana) a i ʻole iiaciiie (Subroutine). ʻO kaʻokoʻa nui ma waena o nā kaʻina hana Launch и iiaciiie ʻo ia ke kaʻina hana Launch hoʻihoʻi i ka hopena, kaʻina hana iiaciiie – ʻaʻole.

No laila, inā pono ʻoe e hana i nā hana a loaʻa i kahi hopena (e laʻa, e hōʻuluʻulu i nā helu he nui), a laila hoʻohana pinepine ʻia ke kaʻina hana Launch, a i mea e hana wale ai i kekahi mau hana (no ka laʻana, e hoʻololi i ke ʻano o kahi pūʻulu o nā cell), pono ʻoe e koho i ke kaʻina hana. iiaciiie.

Kū'ē

Hiki ke hāʻawi ʻia nā ʻikepili like ʻole i nā kaʻina VBA me ka hoʻohana ʻana i nā manaʻo. Hōʻike ʻia ka papa inoa hoʻopaʻapaʻa i ka wā e haʻi ana i kahi kaʻina hana. Eia kekahi laʻana, ke kaʻina hana iiaciiie ma VBA e hoʻohui i ka integer i hāʻawi ʻia (Integer) i kēlā me kēia cell i ka pae i koho ʻia. Hiki iā ʻoe ke hāʻawi i kēia helu i ke kaʻina hana me ka hoʻopaʻapaʻa, e like me kēia:

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

E hoʻomanaʻo i ka loaʻa ʻana o nā hoʻopaʻapaʻa no nā kaʻina hana Launch и iiaciiie ma VBA he koho. ʻAʻole pono kekahi mau kaʻina hana i nā hoʻopaʻapaʻa.

Hoʻopaʻapaʻa koho

Hiki i nā kaʻina hana VBA ke loaʻa nā manaʻo koho. He mau hoʻopaʻapaʻa kēia e hiki ai i ka mea hoʻohana ke kuhikuhi inā makemake lākou, a inā e haʻalele ʻia, hoʻohana ke kaʻina hana i nā koina paʻamau no lākou.

Ke hoʻi nei i ka laʻana mua, e hana i kahi hoʻopaʻapaʻa integer i kahi hana koho, e haʻi ʻia e like me kēia:

Sub AddToCells(Koho i As Integer = 0)

I kēia hihia, ʻo ka hoʻopaʻapaʻa integer i ʻo 0 ka mea paʻamau.

Hiki ke loaʻa kekahi mau manaʻo koho i loko o kahi kaʻina hana, ua helu ʻia nā mea a pau ma ka hope o ka papa inoa hoʻopaʻapaʻa.

Ke hāʻawi nei i nā hoʻopaʻapaʻa ma ka waiwai a ma ke kuhikuhi

Hiki ke hāʻawi ʻia nā hoʻopaʻapaʻa ma VBA i kahi kaʻina hana ma nā ala ʻelua:

  • ByVal - ka hāʻawi ʻana i kahi hoʻopaʻapaʻa ma ka waiwai. ʻO ia ke ʻano o ka waiwai wale nō (ʻo ia hoʻi, he kope o ka hoʻopaʻapaʻa) i hāʻawi ʻia i ke kaʻina hana, a no laila e nalowale nā ​​loli i ka hoʻopaʻapaʻa i loko o ke kaʻina hana i ka wā e puka ai ke kaʻina hana.
  • ByRef - ka hāʻawi ʻana i kahi hoʻopaʻapaʻa ma ke kuhikuhi. ʻO ia hoʻi, ua hāʻawi ʻia ka helu maoli o ka wahi hoʻopaʻapaʻa i ka hoʻomanaʻo i ke kaʻina hana. E mālama ʻia nā hoʻololi i hoʻopaʻapaʻa i loko o ke kaʻina hana i ka wā e puka ai ke kaʻina hana.

Ke hoʻohana nei i nā huaʻōlelo ByVal or ByRef i ka hoʻolaha kaʻina hana, hiki iā ʻoe ke kuhikuhi i ke ʻano o ka hoʻopaʻapaʻa ʻana i ke kaʻina hana. Hōʻike ʻia kēia ma nā laʻana ma lalo nei:

Sub AddToCells(ByVal i As Integer) ... End Sub
I kēia hihia, ʻo ka hoʻopaʻapaʻa integer i i hala ma ka waiwai. Ma hope o ka haʻalele ʻana i ke kaʻina hana iiaciiie hana ʻia nā mea a pau me i e nalowale nā ​​hoʻololi.
Sub AddToCells(ByRef i As Integer) ... End Sub
I kēia hihia, ʻo ka hoʻopaʻapaʻa integer i i hala ma ke kuhikuhi. Ma hope o ka haʻalele ʻana i ke kaʻina hana iiaciiie hana ʻia nā mea a pau me i e mālama ʻia nā hoʻololi i loko o ka loli i hāʻawi ʻia i ke kaʻina hana iiaciiie.

E hoʻomanaʻo i ka hoʻopaʻapaʻa ʻana i ka VBA ma ke ʻano maʻamau. I nā huaʻōlelo ʻē aʻe, inā ʻaʻole hoʻohana ʻia nā huaʻōlelo ByVal or ByRef, a laila e hoʻoholo ʻia ka hoʻopaʻapaʻa ma ke kuhikuhi.

Ma mua o ka hoʻomau ʻana i nā kaʻina hana Launch и iiaciiie i nā kikoʻī hou aku, pono e nānā hou i nā hiʻohiʻona a me nā ʻokoʻa ma waena o kēia mau ʻano hana ʻelua. Eia nā kūkākūkā pōkole o nā kaʻina hana VBA Launch и iiaciiie a hōʻike ʻia nā laʻana maʻalahi.

Kaʻina hana VBA "Hana"

Hoʻomaopopo ka mea hoʻoponopono VBA i ke kaʻina hana Launchke hālāwai ʻo ia i kahi hui o nā kauoha i hoʻopaʻa ʻia ma waena o kēia mau ʻōlelo wehe a pani:

Hana ... Hoʻopau Hana

E like me ka mea i ʻōlelo ʻia ma mua, ke kaʻina hana Launch i VBA (e kū'ē i iiaciiie) hoʻihoʻi i kahi waiwai. Pili nā lula e hoʻihoʻi i nā waiwai:

  • Pono e haʻi ʻia ke ʻano ʻikepili o ka waiwai hoʻihoʻi ma ke poʻo o ke kaʻina hana Launch.
  • Pono e kapa ʻia ka mea hoʻololi i loaʻa ka waiwai hoʻihoʻi e like me ke kaʻina hana Launch. ʻAʻole pono e haʻi kaʻawale ʻia kēia ʻano hoʻololi, no ka mea, aia mau ia ma ke ʻano he ʻāpana o ke kaʻina hana. Launch.

Ua hōʻike maikaʻi ʻia kēia ma ka laʻana.

Ka Laʻana Hana Hana VBA: Hana ʻana i ka hana makemakika ma nā helu 3

Eia kekahi laʻana o kahi code kaʻina hana VBA Launch, e lawe ana i ekolu mau manao o ke ano palua (nā helu lana-kaulua-pololei). ʻO ka hopena, hoʻihoʻi ke kaʻina hana i kahi helu ʻē aʻe o ke ʻano paluae like me ka huina o na manao mua elua me ke kolu o ka manao.

Hana ʻAha Minus(dNum1 E like me Palua, dNum2 E like me Palua, dNum3 E like me Palua) E like me Palua SumMinus = dNum1 + dNum2 - dNum3 Hoʻopau Hana

ʻO kēia kaʻina hana VBA maʻalahi Launch hōʻike i ka hoʻoili ʻia ʻana o ka ʻikepili i kahi kaʻina hana ma o nā hoʻopaʻapaʻa. Hiki iā ʻoe ke ʻike ua wehewehe ʻia ke ʻano ʻikepili i hoʻihoʻi ʻia e ke kaʻina hana palua (ʻōlelo nā ʻōlelo Like Palua ma hope o ka papa inoa o nā hoʻopaʻapaʻa). Hōʻike pū kēia laʻana i ka hopena o ke kaʻina hana Launch mālama ʻia i loko o kahi loli me ka inoa like me ka inoa kaʻina hana.

Kāhea i ke kaʻina hana VBA "Function"

Inā ʻo ke kaʻina hana maʻalahi ma luna Launch i hoʻokomo ʻia i loko o kahi module i ka hoʻoponopono Visual Basic, hiki ke kāhea ʻia mai nā kaʻina hana VBA ʻē aʻe a i hoʻohana ʻia ma ka pepa haʻawina ma kahi puke hana Excel.

Kāhea i ke kaʻina hana VBA "Function" mai kahi kaʻina hana ʻē aʻe

Ke Kaʻina hana Launch hiki ke kāhea ʻia mai kahi kaʻina VBA ʻē aʻe ma ka hāʻawi wale ʻana i kēlā kaʻina hana i kahi loli. Hōʻike kēia hiʻohiʻona i kahi kelepona i kahi kaʻina hana Summinus, i hoakakaia maluna.

Sub main() Puʻuha pau e like me ka huina pālua = SumMinus(5, 4, 3) End Sub

Kāhea i ke kaʻina hana VBA "Function" mai kahi pepa hana

kaʻina hana VBA Launch hiki ke kāhea ʻia mai kahi pepa hana Excel ma ke ʻano like me nā hana Excel i kūkulu ʻia. No laila, ke kaʻina hana i hana ʻia ma ka laʻana mua Launch - Summinus Hiki ke kāhea ʻia ma ke komo ʻana i kēia ʻōlelo i loko o kahi pūlima pepa hana:

=SumMinus(10, 5, 2)

ʻO ke kaʻina hana VBA "Sub"

Hoʻomaopopo ka mea hoʻoponopono VBA aia kahi kaʻina hana i mua iiaciiieke hālāwai ʻo ia i kahi hui o nā kauoha i hoʻopaʻa ʻia ma waena o kēia mau ʻōlelo wehe a pani:

Sub ... Hoʻopau Sub

ʻO ke kaʻina hana VBA "Sub": Ka Laʻana 1. Hoʻololi ka hoʻopololei waena a me ka nui o ka font i kahi ʻano o nā cell i koho ʻia

E noʻonoʻo i kahi laʻana o kahi kaʻina hana VBA maʻalahi iiaciiie, nona ka hana e hoʻololi i ka hoʻopili ʻana o ka laulima o nā cell i koho ʻia. Hoʻopili ʻia nā cell i ke kikowaena (ma ka ʻaoʻao a me ka pae) a ua hoʻololi ʻia ka nui o ka font i ka mea hoʻohana i kuhikuhi ʻia:

Sub Format_Centered_And_Sized(koho iFontSize As Integer = 10) Koho.

Kēia kaʻina hana iiaciiie hana i nā hana akā ʻaʻole e hoʻihoʻi i kahi hopena.

Hoʻohana pū kēia laʻana i kahi hoʻopaʻapaʻa koho Nui Font. Ina ka hoopaapaa Nui Font ʻaʻole i hala i ke kaʻina hana iiaciiie, a laila, he 10 kona waiwai paʻamau. Eia naʻe, inā ka hoʻopaʻapaʻa Nui Font hāʻawi ʻia i ke kaʻina hana iiaciiie, a laila e hoʻonohonoho ʻia ka laulā o nā cell i koho ʻia i ka nui font i kuhikuhi ʻia e ka mea hoʻohana.

ʻO ke Kaʻina Hana VBA: Ka Laʻana 2: Hoʻopololei i waenakonu a me nā kikokikona wiwo ʻole ma ka laulā o nā kelepona i koho ʻia

Ua like ke kaʻina hana aʻe me ka mea i kūkākūkā ʻia, akā i kēia manawa, ma kahi o ka hoʻololi ʻana i ka nui, hoʻohana ia i kahi ʻano font wiwo ʻole i ke ʻano o nā cell i koho ʻia. He laʻana kaʻina hana kēia iiaciiie, ʻaʻole lawe i nā hoʻopaʻapaʻa:

Sub Format_Centered_And_Bold() Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Bold = Hoʻopau ʻoiaʻiʻo Sub

Kāhea ʻia ke kaʻina hana "Sub" ma Excel VBA

Kāhea i ke kaʻina hana VBA "Sub" mai kahi kaʻina hana ʻē aʻe

E kāhea i kahi kaʻina hana VBA iiaciiie mai kekahi kaʻina hana VBA, pono ʻoe e kākau i ka huaʻōlelo kahea, inoa kaʻina hana iiaciiie a i loko o nā pale nā ​​manaʻo o ke kaʻina hana. Hōʻike ʻia kēia ma ka laʻana ma lalo nei:

Sub main() Call Format_Centered_And_Sized(20) End Sub

Inā ke kaʻina hana Format_Centered_And_Sized ʻoi aku ka nui o ka hoʻopaʻapaʻa, pono e hoʻokaʻawale ʻia lākou me nā koma. E like me kēia:

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

Kāhea i ke kaʻina hana VBA "Sub" mai ka pepa hana

Ke Kaʻina hana iiaciiie ʻAʻole hiki ke hoʻokomo pololei ʻia i loko o kahi cell sheet Excel, hiki ke hana ʻia me kahi kaʻina hana Launchno ke kaʻina hana iiaciiie ʻaʻole e hoʻihoʻi i kahi waiwai. Eia naʻe, nā kaʻina hana iiaciiie, ʻaʻohe kumu hoʻopaʻapaʻa a haʻi ʻia ʻo ia Public (e like me ka mea i hōʻike ʻia ma lalo) e loaʻa i nā mea hoʻohana o ka pepa haʻawina. No laila, inā nā kaʻina hana maʻalahi i kūkākūkā ʻia ma luna iiaciiie hoʻokomo ʻia i loko o kahi module i ka Visual Basic Editor, ke kaʻina hana Format_Centered_And_Bold e loaʻa no ka hoʻohana ʻana i kahi pepa hana Excel, a me ke kaʻina hana Format_Centered_And_Sized - ʻaʻole e loaʻa no ka mea he mau hoʻopaʻapaʻa.

Eia kahi ala maʻalahi e holo (a hoʻokō) i kahi kaʻina hana iiaciiie, hiki ke loaʻa mai ka pepa hana:

  • Press Alt + F8 (paʻi kī Alt a oiai e paa ana i lalo, e kaomi i ke ki F8).
  • Ma ka papa inoa o nā macros e ʻike ʻia, koho i ka mea āu e makemake ai e holo.
  • Press holo (holo)

E hana i kahi kaʻina hana iiaciiie me ka wikiwiki a me ka maʻalahi, hiki iā ʻoe ke hoʻonohonoho i kahi pōkole keyboard iā ia. No kēia:

  • Press Alt + F8.
  • Ma ka papa inoa o nā macros e hōʻike ʻia, e koho i ka mea āu e makemake ai e hāʻawi i kahi pōkole keyboard.
  • Press kiko'î (Nā koho) a ma ka pahu kamaʻilio e ʻike ʻia, e hoʻokomo i ka pōkole keyboard.
  • Press OK a pani i ke kamaʻilio ʻO Macro (Macro).

noonoo ana: Ke hāʻawi ʻana i kahi pōkole kīpē i kahi macro, e hōʻoia ʻaʻole i hoʻohana ʻia ma ke ʻano maʻamau ma Excel (no ka laʻana, Ctrl + C). Inā koho ʻoe i kahi ʻaoʻao pōkole keyboard i kēia manawa, e hoʻihoʻi ʻia ia i ka macro, a ma muli o ka hopena, hiki i ka mea hoʻohana ke hoʻomaka i ka macro me ka pōʻino.

Kaʻina hana VBA

Ua kūkākūkā ka Māhele 2 o kēia kumu aʻo i ke ʻano o nā mea hoʻololi a me nā mea mau a me ke kuleana o nā huaʻōlelo. Public и uku. Hiki ke hoʻohana ʻia kēia mau huaʻōlelo me nā kaʻina hana VBA:

Nā Sub AddToCells(i As Integer) ... End Sub
Inā ma mua o ke kaʻina hana e ka huaʻōlelo Public, a laila e loaʻa ke kaʻina hana i nā modula a pau i kēlā papahana VBA.
Nā Sub AddToCells(i As Integer) ... End Sub
Inā ma mua o ke kaʻina hana e ka huaʻōlelo uku, a laila e loaʻa kēia kaʻina hana no ka module o kēia manawa. ʻAʻole hiki ke kāhea ʻia i loko o kekahi module a i ʻole mai kahi puke hana Excel.

E hoʻomanaʻo inā ma mua o ka haʻi ʻana i kahi kaʻina VBA Launch or iiaciiie ʻAʻole hoʻokomo ʻia ka huaʻōlelo, ua hoʻonohonoho ʻia ka waiwai paʻamau no ke kaʻina hana Public (ʻo ia hoʻi, e loaʻa iā ia ma nā wahi āpau o kēia papahana VBA). He ʻokoʻa kēia me nā ʻōlelo hoʻololi, ʻo ia ka mea maʻamau uku.

Ke puka mua mai nā kaʻina hana VBA "Function" a me "Sub"

Inā pono ʻoe e hoʻopau i ka hoʻokō ʻana i kahi kaʻina hana VBA Launch or iiaciiie, me ke kali ʻole i kona hopena kūlohelohe, a laila aia nā mea hana Hana i waho и Kuhi Sub. Hōʻike ʻia ka hoʻohana ʻana i kēia mau mea hoʻohana ma ka hoʻohana ʻana i kahi kaʻina hana maʻalahi ma ke ʻano he laʻana. LaunchʻO ka manaʻo e loaʻa i kahi hoʻopaʻapaʻa kūpono e hana i nā hana hou aʻe. Inā hāʻawi ʻia kahi waiwai maikaʻi ʻole i ke kaʻina hana, a laila ʻaʻole hiki ke hana hou ʻia, no laila e hōʻike ʻia ka mea hoʻohana i kahi leka hewa a pono e haʻalele koke ke kaʻina hana:

Hana VAT_Amount(sVAT_Rate As Single) Like Single VAT_Amount = 0 Inā sVAT_Rate <= 0 A laila MsgBox "Manaʻo i kahi waiwai kūpono o sVAT_Rate akā Loaʻa " & sVAT_Rate Exit Function End If ... End Function

E ʻoluʻolu e hoʻomaopopo ma mua o ka hoʻopau ʻana i ke kaʻina hana Launch - VAT_Nui, ua hoʻokomo ʻia kahi hana VBA i kūkulu ʻia i loko o ke code MsgBox, e hōʻike ana i kahi popup hoʻolaha i ka mea hoʻohana.

Waiho i ka Reply