Modhan “gnìomh” agus “fo” ann an VBA

Gnìomhan VBA togte

Mus tòisich thu air na gnìomhan VBA agad fhèin a chruthachadh, tha e math fios a bhith agad gu bheil cruinneachadh beairteach de ghnìomhan togte ro-thogte aig Excel VBA as urrainn dhut a chleachdadh fhad ‘s a tha thu a’ sgrìobhadh do chòd.

Faodar liosta de na gnìomhan sin fhaicinn ann an deasaiche VBA:

  • Fosgail leabhar-obrach Excel agus cuir air bhog deasaiche VBA (cliog gus seo a dhèanamh Alt + F11), agus an uairsin brùth F2.
  • Tagh leabharlann bhon liosta tuiteam-sìos aig mullach clì na sgrìn VBA.
  • Nochdaidh liosta de chlasaichean agus gnìomhan VBA togte. Cliog air ainm an gnìomh gus an tuairisgeul goirid aige a thaisbeanadh aig bonn na h-uinneige. bruthadh F1 fosglaidh an duilleag cuideachaidh air-loidhne airson an fheart sin.

A bharrachd air an sin, gheibhear liosta iomlan de ghnìomhan VBA togte le eisimpleirean aig an Ionad Leasachaidh Visual Basic.

Modhan gnàthaichte “Function” agus “Sub” ann an VBA

Ann an Excel Visual Basic, tha seata de òrdughan a choileanas gnìomh sònraichte air a chuir ann am modh-obrach. Dleastanas (gnìomh) no Fo (Fo-riaghailt). Tha am prìomh eadar-dhealachadh eadar na modhan-obrach Dleastanas и Fo is e sin an dòigh-obrach Dleastanas a 'tilleadh toradh, modh-obrach Fo - chan eil.

Mar sin, ma dh'fheumas tu gnìomhan a dhèanamh agus toradh fhaighinn (mar eisimpleir, àireamh grunn àireamhan), mar as trice bidh am modh-obrach air a chleachdadh Dleastanas, agus gus dìreach cuid de ghnìomhan a dhèanamh (mar eisimpleir, atharraich cruth buidheann de cheallan), feumaidh tu am modh-obrach a thaghadh Fo.

Argumaidean

Faodar diofar dàta a chuir gu modhan VBA a’ cleachdadh argamaidean. Tha liosta nan argamaidean air a shònrachadh nuair a thathar ag ainmeachadh modh-obrach. Mar eisimpleir, am modh-obrach Fo ann an VBA a’ cur an t-slànaighear (Integer) ri gach cealla anns an raon taghte. Faodaidh tu an àireamh seo a chuir chun mhodh-obrach a’ cleachdadh argamaid, mar seo:

Fo AddToCells(i As Integer) ... Deireadh Fo

Cumaibh cuimhne gu bheil argamaidean agad airson modhan-obrach Dleastanas и Fo ann an VBA roghainneil. Chan fheum cuid de mhodhan-obrach argamaidean.

Argamaidean Roghainneil

Faodaidh argamaidean roghainneil a bhith aig modhan VBA. Is iad seo argamaidean a dh'fhaodas an neach-cleachdaidh a shònrachadh ma tha iad ag iarraidh, agus ma thèid an dearmad, bidh am modh-obrach a 'cleachdadh nan luachan bunaiteach dhaibh.

A’ tilleadh chun an eisimpleir roimhe, gus argamaid iomlan a dhèanamh gu gnìomh roghnach, bhiodh e air ainmeachadh mar seo:

Fo AddToCells (Roghainneil i Mar Integer = 0)

Anns a 'chùis seo, an argamaid iomlan i bidh am bun-bheachd 0.

Faodaidh grunn argamaidean roghainneil a bhith ann am modh-obrach, agus tha iad uile air an liostadh aig deireadh liosta nan argamaidean.

Cuir seachad argamaidean le luach agus le iomradh

Faodar argamaidean ann an VBA a chuir air adhart gu modh-obrach ann an dà dhòigh:

  • ByVal - a 'dol seachad air argamaid le luach. Tha seo a 'ciallachadh nach tèid ach an luach (is e sin, leth-bhreac den argamaid) a thoirt don mhodh-obrachaidh, agus mar sin thèid atharrachaidhean sam bith a thèid a dhèanamh air an argamaid taobh a-staigh a' mhodh-obrachaidh a chall nuair a thig am modh-obrach a-mach.
  • ByRef - a’ dol seachad air argamaid le iomradh. Is e sin, tha fìor sheòladh suidheachadh na h-argamaid mar chuimhneachan air a chuir chun mhodh-obrach. Thèid atharrachaidhean sam bith a thèid a dhèanamh air argamaid taobh a-staigh a’ mhodh-obrachaidh a shàbhaladh nuair a thig am modh-obrach a-mach.

A 'cleachdadh prìomh fhaclan ByVal or ByRef anns an dearbhadh modh-obrach, faodaidh tu sònrachadh mar a thèid an argamaid a chuir chun mhodh-obrach. Tha seo air a shealltainn ann an eisimpleirean gu h-ìosal:

Fo AddToCells(ByVal i As Integer) ... Deireadh Fo
Anns a 'chùis seo, an argamaid iomlan i seachad air luach. Às deidh a 'mhodh-obrachaidh fhàgail Fo uile air an deanamh le i thèid atharrachaidhean a chall.
Fo AddToCells(ByRef i As Integer) ... Deireadh Fo
Anns a 'chùis seo, an argamaid iomlan i seachad le iomradh. Às deidh a 'mhodh-obrachaidh fhàgail Fo uile air an deanamh le i thèid na h-atharrachaidhean a stòradh anns a’ chaochladair a chaidh a thoirt don mhodh-obrach Fo.

Cuimhnich gu bheil argamaidean ann an VBA air an toirt seachad le iomradh gu bunaiteach. Ann am faclan eile, mura tèid prìomh fhaclan a chleachdadh ByVal or ByRef, an uairsin thèid an argamaid seachad le iomradh.

Mus tèid thu air adhart leis na modhan-obrach Dleastanas и Fo ann am barrachd mionaideachd, bidh e feumail sùil eile a thoirt air na feartan agus na h-eadar-dhealachaidhean eadar an dà sheòrsa mhodhan-obrach seo. Tha na leanas nan còmhraidhean goirid mu mhodhan VBA Dleastanas и Fo agus tha eisimpleirean sìmplidh air an sealltainn.

Modh-obrach VBA «Feumar»

Tha deasaiche VBA ag aithneachadh a’ mhodh-obrach Dleastanasnuair a choinnicheas e ri buidheann de dh’ òrduighean ceangailte eadar na h-aithrisean fosglaidh is dùnaidh a leanas:

Gnìomh... Gnìomh crìoch

Mar a chaidh ainmeachadh na bu tràithe, a 'phròiseas Dleastanas ann an VBA (an taca ri Fo) luach a thilleadh. Tha na riaghailtean a leanas a 'buntainn ri luachan tilleadh:

  • Feumar an seòrsa dàta den luach tilleadh fhoillseachadh ann am bann-cinn a’ mhodh-obrach Dleastanas.
  • Feumaidh an caochladair anns a bheil an luach tilleadh a bhith air ainmeachadh mar an dòigh-obrach Dleastanas. Chan fheum an caochladair seo a bhith air ainmeachadh air leth, oir tha e an-còmhnaidh ann mar phàirt riatanach den mhodh-obrach. Dleastanas.

Tha seo air a dheagh mhìneachadh anns an eisimpleir a leanas.

Eisimpleir Gnìomh VBA: A’ coileanadh gnìomhachd matamataigeach air 3 àireamhan

Tha na leanas na eisimpleir de chòd modh-obrach VBA Dleastanas, a ghabhas trì argamaidean de sheòrsa Double (àireamhan puing-fleòdraidh dà-chruinneas). Mar thoradh air an sin, bidh am modh-obrach a 'tilleadh àireamh eile de sheòrsa Doubleco-ionann ri suim a’ chiad dà argamaid às aonais an treas argamaid:

Gnìomh SumMinus (dNum1 Mar Dùbailte, dNum2 Mar Dùbailte, dNum3 Mar Dùbailte) Mar Dùbailte SumMinus = dNum1 + dNum2 - dNum3 Mar Dùbailte

Tha am modh-obrach VBA gu math sìmplidh seo Dleastanas a’ sealltainn mar a thèid dàta a chur gu modh-obrach tro argamaidean. Chì thu gu bheil an seòrsa dàta air a thilleadh leis a’ mhodh-obrach air a mhìneachadh mar Double (tha na facail ag ràdh Mar Dùbailte às deidh liosta nan argamaidean). Tha an eisimpleir seo cuideachd a 'sealltainn mar a tha toradh a' mhodh-obrachaidh Dleastanas air a stòradh ann an caochladair leis an aon ainm ri ainm a’ mhodh-obrachaidh.

A’ gairm modh-obrach VBA “Function”

Ma tha am pròiseas sìmplidh gu h-àrd Dleastanas air a chuir a-steach do mhodal anns an deasaiche Visual Basic, faodar a ghairm bho mhodhan VBA eile no a chleachdadh air duilleag-obrach ann an leabhar-obrach Excel.

Cuir fòn gu modh VBA “Function” bho mhodh eile

Modh-obrach Dleastanas faodar a ghairm bho mhodhan VBA eile le bhith dìreach a’ sònrachadh a’ mhodh-obrach sin gu caochlaideach. Tha an eisimpleir a leanas a’ sealltainn gairm gu modh-obrach Geàrr-chunntas, a chaidh a mhìneachadh gu h-àrd.

Fo-phrìomh () Meud iomlan mar Iomlan dùbailte = SumMinus(5, 4, 3) Crìoch fo

Cuir fòn gu modh-obrach VBA “Function” bho dhuilleag-obrach

Modh-obrach VBA Dleastanas faodar a ghairm bho dhuilleag-obrach Excel san aon dòigh ri gnìomh Excel sam bith eile a tha air a thogail a-steach. Mar sin, am modh-obrach a chaidh a chruthachadh san eisimpleir roimhe Dleastanas - Geàrr-chunntas faodar a ghairm le bhith a’ cur a-steach an abairt a leanas a-steach do chealla duilleag-obrach:

=SumMinus(10, 5, 2)

Modh-obrach VBA «Fo»

Tha neach-deasachaidh VBA a 'tuigsinn gu bheil modh-obrach air beulaibh Fonuair a choinnicheas e ri buidheann de dh’ òrduighean ceangailte eadar na h-aithrisean fosglaidh is dùnaidh a leanas:

Fo... Deireadh Fo

Modh VBA “Sub”: Eisimpleir 1. Co-thaobhadh an ionaid agus atharrachadh meud cruth-clò ann an raon taghte de cheallan

Beachdaich air eisimpleir de mhodh-obrach sìmplidh VBA Fo, aig a bheil e mar dhleastanas atharrachadh a dhèanamh air cruth an raon taghte de cheallan. Tha na ceallan stèidhichte (an dà chuid gu h-ìseal agus gu còmhnard) agus tha meud a’ chruth-clò air atharrachadh chun neach-cleachdaidh ainmichte:

Fo Format_Centered_And_Sized(Roghainneil iFontSize As Integer = 10) Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Size = iFontSize End Fo

An dòigh-obrach seo Fo a’ coileanadh ghnìomhan ach chan eil e a’ tilleadh toradh.

Bidh an eisimpleir seo cuideachd a’ cleachdadh argamaid Roghainneil Meud cruth-clò. Ma tha an argamaid Meud cruth-clò nach deach a thoirt don mhodh-obrach Fo, an uairsin is e a luach bunaiteach 10. Ge-tà, ma tha an argamaid Meud cruth-clò seachad gu modh-obrach Fo, an uairsin thèid an raon cealla taghte a shuidheachadh chun meud cruth-clò a shònraich an neach-cleachdaidh.

Fo-dhòigh-obrach VBA: Eisimpleir 2: Co-thaobhadh sa mheadhan agus cruth trom ann an raon taghte de cheallan

Tha an dòigh-obrach a leanas coltach ris an fhear a chaidh a dheasbad, ach an turas seo, an àite ath-mheudachadh, bidh e a’ cur stoidhle clò trom ris an raon de cheallan a chaidh a thaghadh. Is e seo eisimpleir de phròiseas Fo, anns nach eil argamaidean ann:

Fo Format_Centered_And_Bold() Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Bold = Fo-dheireadh fìor

A 'gairm modh-obrach "Sub" ann an Excel VBA

Cuir fòn gu modh VBA “Sub” bho mhodh eile

Gus modh-obrach VBA a ghairm Fo bho dhòigh-obrach VBA eile, feumaidh tu am prìomh fhacal a sgrìobhadh Call, ainm modh-obrach Fo agus nas fhaide ann am brathan tha argamaidean a’ mhodh-obrachaidh. Tha seo ri fhaicinn san eisimpleir gu h-ìosal:

Fo phrìomh () Call Format_Centered_And_Sized(20) End Sub

Ma tha an dòigh-obrach Cruth_Centred_And_Sized le barrachd air aon argamaid, feumaidh iad a bhith air an sgaradh le cromagan. Mar seo:

Fo phrìomh () Call Format_Centered_And_Sized(arg1, arg2, ...) Deireadh Fo

Cuir fòn gu modh VBA “Sub” bhon duilleag-obrach

Modh-obrach Fo chan urrainnear a chuir a-steach gu dìreach ann an cealla duilleag Excel, mar a ghabhas dèanamh le modh-obrach Dleastanasair sgàth modh-obrach Fo nach till luach. Ach, modhan-obrach Fo, aig nach eil argamaidean agus a tha air an ainmeachadh mar Phoblach (mar a chithear gu h-ìosal) ri fhaotainn do luchd-cleachdaidh na duilleige-obrach. Mar sin, ma tha na modhan-obrach sìmplidh air an deach beachdachadh gu h-àrd Fo air a chuir a-steach do mhodal anns an Deasaiche Visual Basic, am modh-obrach Cruth_Centred_And_Trom ri fhaighinn airson a chleachdadh ann an duilleag-obrach Excel, agus am modh-obrach Cruth_Centred_And_Sized - cha bhith e ri fhaighinn leis gu bheil argamaidean ann.

Seo dòigh furasta air modh-obrach a ruith (no a chur an gnìomh). Fo, ruigsinneach bhon duilleag-obrach:

  • Meadhanan Alt + F8 (brùth iuchair Alt agus fhad 'sa tha thu ga chumail sìos, brùth air an iuchair F8).
  • Anns an liosta de macros a nochdas, tagh am fear a tha thu airson a ruith.
  • Meadhanan Run (ruith)

Gus modh-obrach a dhèanamh Fo gu sgiobalta agus gu furasta, faodaidh tu ath-ghoirid meur-chlàr a shònrachadh dha. Airson seo:

  • Meadhanan Alt + F8.
  • Anns an liosta de macros a nochdas, tagh am fear a tha thu airson ath-ghoirid meur-chlàr a shònrachadh dha.
  • Meadhanan Chrìochan (Roghainnean) agus anns a’ bhogsa deasbaid a nochdas, cuir a-steach ath-ghoirid a’ mheur-chlàir.
  • Meadhanan OK agus dùin an còmhradh Macro (Macro).

aire: Nuair a bhios tu a’ sònrachadh ath-ghoirid meur-chlàr gu macro, dèan cinnteach nach tèid a chleachdadh mar as àbhaist ann an Excel (mar eisimpleir, Ctrl + C). Ma thaghas tu ath-ghoirid meur-chlàr a tha ann mar-thà, thèid ath-shònrachadh chun macro, agus mar thoradh air an sin, faodaidh an neach-cleachdaidh am macro a thòiseachadh gun fhiosta.

Farsaingeachd modh-obrach VBA

Bheachdaich Pàirt 2 den oideachadh seo air farsaingeachd chaochladairean agus sheasmhachd agus àite prìomh fhaclan. Phoblach и prìobhaideach. Faodar na prìomh fhaclan sin a chleachdadh cuideachd le modhan VBA:

Fo-Poblach AddToCells(i Mar Shlànaighear) ... Deireadh Fo
Ma tha am prìomh fhacal air thoiseach air an dearbhadh modh-obrach Phoblach, an uairsin bidh am modh-obrach ri fhaighinn leis a h-uile modal sa phròiseact VBA sin.
Fo-Prìobhaideach AddToCells(i As Integer) ... Deireadh Fo
Ma tha am prìomh fhacal air thoiseach air an dearbhadh modh-obrach prìobhaideach, an uairsin bidh am modh-obrach seo ri fhaighinn a-mhàin airson a’ mhodal gnàthach. Chan urrainnear a ghairm fhad ‘s a tha e ann am modal sam bith eile no bho leabhar-obrach Excel.

Cuimhnich ma mus cuir thu fios gu modh VBA Dleastanas or Fo chan eil prìomh fhacal air a chuir a-steach, tha an togalach bunaiteach air a shuidheachadh airson a’ mhodh-obrach Phoblach (is e sin, bidh e ri fhaighinn anns a h-uile àite sa phròiseact VBA seo). Tha seo an taca ri dearbhaidhean caochlaideach, a tha gu bunaiteach prìobhaideach.

A 'fàgail tràth bho mhodhan VBA "Function" agus "Sub"

Ma dh'fheumas tu crìoch a chur air coileanadh modh-obrach VBA Dleastanas or Fo, gun a bhith a 'feitheamh airson a chrìoch nàdarra, an uairsin airson seo tha gnìomhaichean ann Gnìomh fàgail и Fo-thaghadh. Tha cleachdadh nan gnìomhaichean sin air a shealltainn gu h-ìosal a’ cleachdadh modh-obrach sìmplidh mar eisimpleir. DleastanasA a tha an dùil argamaid adhartach fhaighinn airson tuilleadh obrachaidhean a dhèanamh. Ma thèid luach neo-dhearbhach a thoirt don mhodh-obrach, cha ghabh obair sam bith eile a dhèanamh, agus mar sin bu chòir teachdaireachd mearachd a shealltainn don neach-cleachdaidh agus bu chòir don mhodh-obrach falbh sa bhad:

Gnìomh VAT_Amount(sVAT_Rate As Single) Mar Singilte VAT_Amount = 0 Ma tha sVAT_Rate <= 0 An uairsin MsgBox "Bha dùil ri luach dearbhach de sVAT_Rate ach air fhaighinn" & sVAT_Rate Crìochnaich gnìomh fàgail ma tha...

Thoir an aire mus cuir thu crìoch air a’ mhodh-obrach Dleastanas - VAT_Suim, tha gnìomh VBA togte air a chuir a-steach don chòd Bogsa-bhog, a sheallas popup rabhaidh don neach-cleachdaidh.

Leave a Reply