"Mosebetsi" le "Sub" Mekhoa ea VBA

E hahiloeng ka VBA Mesebetsi

Pele o qala ho iketsetsa mesebetsi ea VBA, ho molemo ho tseba hore Excel VBA e na le pokello e ngata ea mesebetsi e hahiloeng esale pele eo u ka e sebelisang ha u ntse u ngola khoutu ea hau.

Lethathamo la mesebetsi ena le ka bonoa ho mohlophisi oa VBA:

  • Bula buka ea mosebetsi ea Excel ebe u qala mohlophisi oa VBA (tobetsa ho etsa sena Alt + F11), ebe o tobetsa F2.
  • Khetha laebrari ho tsoa lethathamong la li-drop-down ka holimo ho le letšehali la skrine VBA.
  • Lenane la lihlopha tsa VBA tse hahelletsoeng le mesebetsi e tla hlaha. Tobetsa lebitsong la ts'ebetso ho bonts'a tlhaloso ea eona e khuts'oane botlaaseng ba fensetere. ho hatella F1 e tla bula leqephe la thuso ea inthaneteng bakeng sa karolo eo.

Ho phaella moo, lethathamo le feletseng la mesebetsi ea VBA e hahelletsoeng ka mehlala e ka fumanoa Setsing sa Visual Basic Developer.

Mekhoa e tloaelehileng ea "Function" le "Sub" ho VBA

Ho Excel Visual Basic, sete ea litaelo tse etsang mosebetsi o itseng li behiloe tšebetsong. mosebetsi (Mosebetsi) kapa Sehlooho (Motlakase). Phapang e kholo lipakeng tsa mekhoa mosebetsi и Sehlooho ke mokhoa oo mosebetsi e khutlisetsa sephetho, mokhoa Sehlooho – ha ho joalo.

Ka hona, haeba u hloka ho etsa liketso le ho fumana sephetho (mohlala, kakaretso ea linomoro tse 'maloa), joale mokhoa ona o atisa ho sebelisoa mosebetsi, 'me e le hore u etse liketso tse itseng feela (mohlala, fetola sebopeho sa sehlopha sa lisele), u lokela ho khetha mokhoa ona. Sehlooho.

Litlhōlisano

Lintlha tse fapaneng li ka fetisetsoa lits'ebetsong tsa VBA ho sebelisa likhang. Lethathamo la likhang le hlalositsoe ha ho phatlalatsoa mokhoa. Ka mohlala, mokhoa Sehlooho ho VBA e eketsa nomoro e fanoeng (Integer) seleng e 'ngoe le e 'ngoe sebakeng se khethiloeng. O ka fetisetsa nomoro ena ts'ebetsong ka ho sebelisa khang, joalo ka:

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

Hopola hore ho ba le likhang bakeng sa mekhoa mosebetsi и Sehlooho ho VBA ke boikhethelo. Mekhoa e meng ha e hloke likhang.

Likhang Tsa Boikhethelo

Mekhoa ea VBA e ka ba le likhang tsa boikhethelo. Tsena ke likhang tseo mosebelisi a ka li hlalosang hore na ba batla, 'me haeba li siiloe, ts'ebetso e sebelisa litekanyetso tsa kamehla bakeng sa bona.

Ha re khutlela mohlaleng o fetileng, ho etsa khang e felletseng molemong oa boikhethelo, e tla phatlalatsoa tjena:

Sub AddToCells(Ho ikhethela ke le Integer = 0)

Tabeng ena, khang e feletseng i ea kamehla e tla ba 0.

Ho ka ba le likhang tse 'maloa tsa boikhethelo ts'ebetsong, tseo kaofela li thathamisitsoeng qetellong ea lenane la likhang.

Ho fetisa likhang ka boleng le ka litšupiso

Likhang tsa VBA li ka fetisetsoa ts'ebetsong ka litsela tse peli:

  • ByVal – ho fetisa khang ka boleng. Sena se bolela hore boleng feela (ke hore, kopi ea khang) bo fetisetsoa ts'ebetsong, ka hona liphetoho leha e le life tse entsoeng khang ka hare ho ts'ebetso li tla lahleha ha ts'ebetso e tsoa.
  • KaRef – ho fetisa ngangisano ka tshupiso. Ke hore, aterese ea sebele ea sebaka sa khang mohopolong e fetisetsoa ts'ebetsong. Liphetoho leha e le life tse entsoeng khang ka hare ho ts'ebetso li tla bolokeha ha mokhoa o tsoa.

Ho sebelisa mantsoe a sehlooho ByVal or KaRef phatlalatsong ea ts'ebetso, o ka hlakisa hore na khang e fetisetsoa joang ts'ebetsong. Sena se bontšoa mehlaleng e ka tlase:

Sub AddToCells(ByVal i As Integer) ... End Sub
Tabeng ena, khang e feletseng i e fete ka boleng. Ka mor'a ho tlohela mokhoa Sehlooho tsohle li entsoe ka i liphetoho li tla lahleha.
Sub AddToCells(ByRef i As Integer) ... End Sub
Tabeng ena, khang e feletseng i e fetisitsoeng ka tshupiso. Ka mor'a ho tlohela mokhoa Sehlooho tsohle li entsoe ka i liphetoho li tla bolokoa ho feto-fetoha e fetiselitsoeng ho mokhoa Sehlooho.

Hopola hore likhang ho VBA li fetisoa ka mokhoa oa kamehla. Ka mantsoe a mang, haeba mantsoe a sehlooho a sa sebelisoe ByVal or KaRef, joale khang e tla fetisoa ka litšupiso.

Pele o tsoela pele ka mekhoa mosebetsi и Sehlooho ka ho qaqileng haholoanyane, ho tla ba molemo ho sheba hape likarolo le phapang pakeng tsa mefuta ena e 'meli ea mekhoa. Lintlha tse latelang ke lipuisano tse khutšoane tsa mekhoa ea VBA mosebetsi и Sehlooho mme mehlala e bonolo e bontshwa.

Mokhoa oa VBA "Mosebetsi"

Mohlophisi oa VBA o lemoha mokhoa ona mosebetsiha e kopana le sehlopha sa litaelo tse kentsoeng lipakeng tsa lipolelo tse latelang tsa ho bula le ho koala:

Mosebetsi ... Qetella Mosebetsi

Joalokaha ho boletsoe pejana, mokhoa mosebetsi ho VBA (ho fapana le Sehlooho) e khutlisetsa boleng. Melao e latelang e sebetsa ho khutlisa boleng:

  • Mofuta oa data oa boleng ba ho khutlisa o tlameha ho phatlalatsoa sehloohong sa ts'ebetso mosebetsi.
  • Phetoho e nang le boleng ba ho khutlisa e tlameha ho reoa ka mokhoa o ts'oanang mosebetsi. Phapang ena ha e hloke ho phatlalatsoa ka thoko, kaha e lula e le teng e le karolo ea bohlokoa ea ts'ebetso. mosebetsi.

Sena se bontšoa hantle mohlaleng o latelang.

Mohlala oa Mosebetsi oa VBA: Ho Etsa Ts'ebetso ea Lipalo ho Lipalo tse 3

Se latelang ke mohlala oa khoutu ea ts'ebetso ea VBA mosebetsi, e nkang likhang tse tharo tsa mofuta Double (linomoro tse phaphametseng ka nepo habeli). Ka lebaka leo, mokhoa ona o khutlisa palo e 'ngoe ea mofuta Doublee lekana le kakaretso ea likhang tse peli tsa pele ho tlosa khang ea boraro:

Mosebetsi oa SumMinus(dNum1 E le Habeli, dNum2 Ha Habeli, dNum3 Joalo Habeli) Joalo Ha Habeli SumMinus = dNum1 + dNum2 - dNum3 End Function

Mokhoa ona o bonolo haholo oa VBA mosebetsi e bonts'a hore na data e fetisetsoa joang ts'ebetsong ka likhang. U ka bona hore mofuta oa data o khutliselitsoeng ke ts'ebetso o hlalosoa e le Double (mantsoe a re Joalo ka Habeli ka mor'a lethathamo la likhang). Mohlala ona o boetse o bontša kamoo sephetho sa ts'ebetso mosebetsi bolokoa ka phapanong e nang le lebitso le tshoanang le lebitso la mokhoa.

Ho bitsa mokhoa oa VBA "Mosebetsi"

Haeba ka holimo mokhoa o bonolo mosebetsi e kentsoeng mojuleng ho Visual Basic editor, e ka bitsoa ho tsoa lits'ebetsong tse ling tsa VBA kapa ea sebelisoa leqepheng la mosebetsi bukeng ea mosebetsi ea Excel.

Letsetsa mokhoa oa VBA "Mosebetsi" ho tsoa ts'ebetsong e 'ngoe

Tsamaiso mosebetsi e ka bitsoa ho tsoa ts'ebetsong e 'ngoe ea VBA ka ho abela mokhoa oo ho feto-fetoha. Mohlala o latelang o bonts'a pitso ea ts'ebetso Summinus, e neng e hlalositsoe ka holimo.

Ntho e ka sehloohong () Palo e fifetseng e le Palo e Habedi = SumMinus(5, 4, 3) Karolo ya ho Qetela

Letsetsa mokhoa oa VBA "Function" ho tsoa leqepheng la mosebetsi

Mokhoa oa ho sebelisa VBA mosebetsi e ka bitsoa ho tsoa leqepheng la mosebetsi la Excel ka mokhoa o ts'oanang le ts'ebetso efe kapa efe e hahelletsoeng ka har'a Excel. Ka hona, mokhoa o entsoeng ka mohlala o fetileng mosebetsi - Summinus e ka bitsoa ka ho kenya polelo e latelang ho sele ea leqephe la mosebetsi:

=SumMinus(10, 5, 2)

Mokhoa oa VBA "Sub"

Mohlophisi oa VBA oa utloisisa hore ho na le ts'ebetso ka pel'a eona Sehloohoha e kopana le sehlopha sa litaelo tse kentsoeng lipakeng tsa lipolelo tse latelang tsa ho bula le ho koala:

Sub ... End Sub

Mokhoa oa VBA "Sub": Mohlala 1. Ho tsamaisana ha bohareng le ho fetoha ha boholo ba fonte mofuteng o khethiloeng oa lisele

Nahana ka mohlala oa mokhoa o bonolo oa VBA Sehlooho, eo mosebetsi oa eona e leng ho fetola sebopeho sa lisele tse khethiloeng. Lisele li tsepamisitsoe (ka bobeli li otlolohile le tse tšekaletseng) 'me boholo ba fonte bo fetoloa ho ba bo boletsoeng ke mosebelisi:

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

Tsamaiso ena Sehlooho e etsa diketso empa ha e busetse sephetho.

Mohlala ona o boetse o sebelisa khang ea Boikhethelo FontSize. Haeba khang FontSize ha e fetisetsoe ts'ebetsong Sehlooho, joale boleng ba eona ba kamehla ke 10. Leha ho le joalo, haeba khang FontSize fetisetsoa mokhoeng Sehlooho, ebe mefuta e khethiloeng ea lisele e tla behoa ho saese ea fonte e boletsoeng ke mosebelisi.

Ts'ebetso e Nyenyane ea VBA: Mohlala oa 2: Hlophisa Bohareng le Fonte e Bold ho Mefuta e Khethiloeng ea Lisele

Mokhoa o latelang o tšoana le o sa tsoa tšohloa, empa lekhetlong lena, ho e-na le ho fetola boholo, o sebelisa mokhoa o motenya oa fonte letotong le khethiloeng la lisele. Ena ke mokhoa oa mohlala Sehlooho, e sa nkeng likhang:

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

Ho letsetsa "Sub" Ts'ebetso ho Excel VBA

Letsetsa mokhoa oa VBA "Sub" ho tsoa ts'ebetsong e 'ngoe

Ho letsetsa mokhoa oa VBA Sehlooho ho tsoa ts'ebetsong e 'ngoe ea VBA, o hloka ho ngola lebitso la sehlooho Call, lebitso la mokhoa Sehlooho 'me ho feta ka masakaneng ho na le likhang tsa mokhoa ona. Sena se bontšoa mohlaleng o ka tlase:

Sub main() Call Format_Centered_And_Sized(20) End Sub

Haeba mokhoa Format_Centered_And_Sized e na le likhang tse fetang bonngoe, li tlameha ho aroloa ka lifeheloa. Rata sena:

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

Letsetsa mokhoa oa VBA "Sub" ho tsoa leqepheng la mosebetsi

Tsamaiso Sehlooho e ke ke ea kenngoa ka kotloloho ka har'a sele ea leqephe la Excel, joalo ka ha ho ka etsoa ka mokhoa o itseng mosebetsihobane mokhoa Sehlooho ha e khutlisetse boleng. Leha ho le joalo, mekhoa Sehlooho, tse se nang likhang le tse phatlalatsoang e le Public (joalokaha ho bontšitsoe ka tlase) e tla fumaneha ho basebelisi ba leqephe la mosebetsi. Kahoo, haeba mekhoa e bonolo e tšohloang ka holimo Sehlooho e kentsoeng mojuleng ho Visual Basic Editor, mokhoa Format_Centered_And_Bold e tla fumaneha bakeng sa ho sebelisoa leqepheng la mosebetsi la Excel, le mokhoa oa ho sebetsa Format_Centered_And_Sized - e ke ke ea fumaneha hobane e na le likhang.

Mona ke mokhoa o bonolo oa ho tsamaisa (kapa ho etsa) ts'ebetso Sehlooho, e fumaneha ho tsoa leqepheng la mosebetsi:

  • Press Alt + F8 (tobetsa konopo Alt 'me ha u ntse u e tšoere, tobetsa konopo F8).
  • Lethathamong la li-macro tse hlahang, khetha eo u batlang ho e tsamaisa.
  • Press Matha (matha)

Ho etsa mokhoa Sehlooho kapele le ha bonolo, o ka e abela sekhechana sa keyboard. Molemong oa sena:

  • Press Alt + F8.
  • Lethathamong la li-macro tse hlahang, khetha eo u batlang ho e abela khetho ea keyboard.
  • Press entsprechen (Dikgetho) le lebokoseng la puisano le hlahang, kenya kgaoletso ya keyboard.
  • Press OK ebe o koala puisano Macro (Macro).

fuoe tlhokomelo: Ha u abela sekhechana sa keyboard ho macro, etsa bonnete ba hore ha se sebelisoe joalo ka tloaelo ho Excel (mohlala, Ctrl + C). Haeba u khetha sekhechana sa keyboard se seng se ntse se le teng, se tla fetisetsoa ho macro, 'me ka lebaka leo, mosebelisi a ka qala macro ka phoso.

Boemo ba Tsamaiso ea VBA

Karolo ea 2 ea thupelo ena e tšohlile boholo ba mefuta-futa le li-constants le karolo ea mantsoe a bohlokoa. Public и Private. Mantsoe ana a bohlokoa a ka sebelisoa le mekhoa ea VBA:

Public Sub AddToCells(i As Integer) ... End Sub
Haeba phatlalatso ea ts'ebetso e etelloa pele ke lebitso la sehlooho Public, joale mokhoa ona o tla fumaneha ho li-module tsohle morerong oo oa VBA.
Private Sub AddToCells(i As Integer) ... End Sub
Haeba phatlalatso ea ts'ebetso e etelloa pele ke lebitso la sehlooho Private, joale mokhoa ona o tla fumaneha feela bakeng sa mojule oa hona joale. E ke ke ea bitsoa ha e ntse e le mojulung ofe kapa ofe kapa ho tsoa bukeng ea mosebetsi ea Excel.

Hopola hore haeba pele u phatlalatsa mokhoa oa VBA mosebetsi or Sehlooho keyword ha e kenngwe, thepa ya kamehla e behilwe bakeng sa tshebetso Public (ke hore, e tla fumaneha hohle morerong ona oa VBA). Sena se fapane le liphatlalatso tse fapaneng, tseo ka ho sa feleng li leng teng Private.

Ho tsoa pele ho mekhoa ea VBA "Function" le "Sub"

Haeba o hloka ho emisa ts'ebetso ea ts'ebetso ea VBA mosebetsi or Sehlooho, ntle le ho emela qetello ea eona ea tlhaho, joale bakeng sa sena ho na le basebetsi Tsoa Mosebetsing и Tsoa Sub. Tšebeliso ea li-operators tsena e bontšoa ka tlase ho sebelisoa mokhoa o bonolo e le mohlala. mosebetsiA e lebeletseng ho fumana khang e ntle ho etsa ts'ebetso e eketsehileng. Haeba boleng bo seng bo botle bo fetisetsoa ts'ebetsong, ha ho na ts'ebetso e 'ngoe e ka etsoang, kahoo mosebelisi o lokela ho bonts'oa molaetsa oa phoso mme ts'ebetso e lokela ho tsoa hanghang:

Mosebetsi oa VAT_Amount(sVAT_Rate E le Sootho) Joalo ka VAT_Amount e le 'Ngoe = 0 Haeba sVAT_Rate <= 0 Ebe MsgBox "Re lebelletse boleng bo Positive ba sVAT_Rate empa E Amogetsoe " & sVAT_Rate E Tloha Mosebetsi E Qeteloa Haeba ... Qetello ea Mosebetsi

Ka kopo hlokomela hore pele o qeta mokhoa ona mosebetsi - VAT_Chelete, mosebetsi oa VBA o hahiloeng ka hare o kenngoa ka har'a khoutu MsgBox, e bonts'ang popup ea temoso ho mosebelisi.

Leave a Reply