"Function" ma le "Sub" Taualumaga ile VBA

Galuega fa'atino a le VBA

Ae e te le'i amata faia au lava galuega VBA, e lelei le iloa o le Excel VBA o lo'o i ai le tele o fa'aputuga o galuega faufale muamua e mafai ona e fa'aogaina a'o tusia lau code.

O se lisi o nei galuega e mafai ona va'aia ile fa'atonu VBA:

  • Tatala se tusi faigaluega Excel ma faʻalauiloa le VBA editor (kiliki e fai lenei Alt + F11), ona oomi lea F2.
  • Filifili se faletusi mai le lisi pa'ū i le pito i luga agavale o le lau VBA.
  • O le a aliali mai se lisi o vasega VBA fausia ma galuega. Kiliki ile igoa ole galuega e fa'aalia ai lona fa'amatalaga puupuu ile pito i lalo ole faamalama. fetaomi F1 o le a tatalaina le itulau fesoasoani i luga ole laiga mo lena vaega.

E le gata i lea, o se lisi atoa o galuega VBA ua fausia ma faʻataʻitaʻiga e mafai ona maua i le Visual Basic Developer Center.

Tulaga masani "Function" ma le "Sub" i le VBA

I le Excel Visual Basic, o se seti o faʻatonuga e faʻatino ai se galuega faʻapitoa e tuʻuina i se faiga. galuega tauave (Fa'atinoga) po'o laiti (Subroutine). Le eseesega tele i le va o taualumaga galuega tauave и laiti o le faiga lena galuega tauave toe faafoi i'uga, taualumaga laiti – leai.

O le mea lea, afai e te manaʻomia le faʻatinoina o gaioiga ma maua se taunuuga (mo se faʻataʻitaʻiga, faʻaopoopo numera), ona faʻaaogaina lea o le faʻatinoga galuega tauave, ma ina ia naʻo le faia o ni gaioiga (mo se faʻataʻitaʻiga, suia le faʻatulagaina o se vaega o sela), e tatau ona e filifilia le faiga. laiti.

Feteenaʻiga

E mafai ona tu'uina atu fa'amatalaga eseese i faiga VBA e fa'aaoga ai finauga. O le lisi o finauga o loʻo faʻamaonia pe a faʻaalia se faiga. Mo se faʻataʻitaʻiga, o le faʻagasologa laiti i le VBA fa'aopoopo le integer (Integer) i sela ta'itasi i le laina filifilia. E mafai ona e pasi lenei numera i le faʻagasologa e faʻaaoga ai se finauga, pei o lenei:

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

Ia manatua o le i ai o finauga mo taualumaga galuega tauave и laiti i le VBA e filifili. O nisi faiga e le mana'omia ni finauga.

Fa'asagaga Fa'asagatau

VBA taualumaga e mafai ona i ai ni finauga e filifili ai. O finauga ia e mafai e le tagata faʻaoga ona faʻamaonia pe a latou manaʻo ai, ma afai e le faʻaaogaina, o le faʻaogaina o le faʻaogaina o tau le aoga mo i latou.

Toe foʻi i le faʻataʻitaʻiga muamua, e fai ai se finauga integer i se galuega e filifili ai, o le a faʻaalia e pei o lenei:

Sub AddToCells(Filifili i As Integer = 0)

I lenei tulaga, o le finauga integer i o le faaletonu o le a 0.

E mafai ona tele ni finauga e filifili ai i se faiga, o lo'o lisiina uma i le pito o le lisi o finauga.

Fa'asalalauina finauga e ala ile taua ma fa'asino

O finauga i le VBA e mafai ona pasi atu i se faiga i ni auala se lua:

  • ByVal – pasia se finauga i le tau. O lona uiga e na'o le tau (o lona uiga, o se kopi o le finauga) e tu'uina atu i le fa'agasologa, ma o le mea lea o so'o se suiga e faia i le finauga i totonu o le fa'agasologa o le a leiloa pe a alu le fa'agasologa.
  • ByRef – pasia se finauga e ala ile faasinomaga. O lona uiga, o le tuatusi moni o le nofoaga o finauga i le manatua e pasi atu i le taualumaga. So'o se suiga e faia i se finauga i totonu o le fa'agasologa o le a fa'asaoina pe a uma le fa'agasologa.

Fa'aaogā upu ByVal or ByRef i le fa'aaliga fa'agaioiga, e mafai ona e fa'amaoti mai pe fa'afefea ona pasia le finauga i le fa'agasologa. O loʻo faʻaalia i faʻataʻitaʻiga o loʻo i lalo:

Sub AddToCells(ByVal i As Integer) ... End Sub
I lenei tulaga, o le finauga integer i pasi i le tau. A maeʻa ona tuʻua le faʻagasologa laiti faia uma ma i suiga o le a leiloa.
Sub AddToCells(ByRef i As Integer) ... End Sub
I lenei tulaga, o le finauga integer i pasia e ala ile faasinomaga. A maeʻa ona tuʻua le faʻagasologa laiti faia uma ma i o suiga o le a teuina i le fesuiaiga na pasia i le taualumaga laiti.

Manatua o finauga i le VBA e pasia e ala i faʻamatalaga e le mafai. I se isi faaupuga, pe a le faʻaogaina upu autu ByVal or ByRef, ona pasia lea o le finauga e ala i le faasinomaga.

A'o le'i fa'agasolo taualumaga galuega tauave и laiti i nisi auiliiliga, o le a aoga le toe tilotilo i foliga ma eseesega i le va o nei ituaiga e lua o taualumaga. O lo'o taua i lalo fa'atalanoaga pupuu o faiga VBA galuega tauave и laiti ma faʻataʻitaʻiga faigofie o loʻo faʻaalia.

VBA taualumaga "Function"

E iloa e le faatonu VBA le faiga galuega tauavepe a feagai ma se vaega o poloaiga o loʻo faʻapipiʻiina i le va o faʻamatalaga amata ma faʻaiʻu:

Galuega ... Fa'ai'u Galuega

E pei ona taʻua muamua, o le faiga galuega tauave i le VBA (e ese mai le laiti) toe faafoi se tau. O tulafono nei e fa'atatau i le toe fa'afo'iina o tau:

  • O le ituaiga faʻamatalaga o le tau toe faʻafoʻi e tatau ona faʻaalia i le ulutala o le faʻatinoga galuega tauave.
  • O le fesuiaiga o loʻo i ai le tau faʻafoʻi e tatau ona faʻaigoaina tutusa ma le faʻagasologa galuega tauave. O lenei fesuiaiga e le manaʻomia ona faʻailoa ese, aua o loʻo i ai pea o se vaega taua o le faʻagasologa. galuega tauave.

O loʻo faʻaalia lelei lenei mea i le faʻataʻitaʻiga o loʻo mulimuli mai.

Fa'ata'ita'iga Galuega Fa'atino a le VBA: Fa'atino se Fa'agaio'iga Fa'a-Matematika i Numera e 3

Ole fa'ata'ita'iga lea ole tulafono ole VBA galuega tauave, lea e tolu finauga o le ituaiga faʻalua (numera opeopea sa'o-lua-sa'o). O se taunuuga, o le faʻatinoga e toe faʻafoʻi mai ai se isi numera o ituaiga faʻaluatutusa ma le aofaiga o finauga muamua e lua toesea le finauga lona tolu:

Galuega A'oa'o Minus(dNum1 Fa'alua, dNum2 Fa'alua, dNum3 Fa'alua) Fa'alua Fa'aTu'u'u = dNum1 + dNum2 - dNum3 Fa'ai'u Galuega

Ole faiga ole VBA faigofie tele lea galuega tauave e fa'aalia ai le fa'asolo atu o fa'amaumauga i se faiga e ala i finauga. E mafai ona e vaʻaia o le ituaiga faʻamatalaga na toe faʻafoʻi mai e le faʻagasologa o loʻo faʻamatalaina e faʻalua (o upu fai mai Fa'alua pe a uma le lisi o finauga). O lenei faʻataʻitaʻiga o loʻo faʻaalia ai foi pe faʻafefea le taunuuga o le faʻatinoga galuega tauave teuina i se fesuiaiga ma le igoa tutusa ma le igoa o le taualumaga.

Vala'au le VBA taualumaga "Function"

Afai o le faiga faigofie i luga galuega tauave fa'aofi i totonu o se module i le Visual Basic editor, e mafai ona vala'au mai isi faiga VBA po'o fa'aoga i luga o se pepa o galuega i totonu o le Excel workbook.

Valaau VBA taualumaga "Function" mai se isi faiga

taualumaga galuega tauave e mafai ona valaʻau mai se isi faiga VBA i le na o le tuʻuina atu o lena faiga i se fesuiaiga. O le fa'ata'ita'iga o lo'o i lalo o lo'o fa'aalia ai se vala'au i se faiga Summinus, lea na faamatalaina i luga.

Autu autu() Fa'ailo le aofa'i pei Fa'alua le aofa'i = SumMinus(5, 4, 3) Fa'ai'u Sub

Valaau VBA taualumaga "Function" mai se pepa o galuega

VBA faiga galuega tauave e mafai ona valaʻau mai se Excel worksheet i le auala lava e tasi e pei o soʻo se isi lava galuega Excel. O le mea lea, o le faiga na faia i le faʻataʻitaʻiga muamua galuega tauave - Summinus e mafai ona valaʻau e ala i le tuʻuina atu o faʻamatalaga nei i totonu o se laupepa o galuega:

=SumMinus(10, 5, 2)

VBA taualumaga "Sub"

E malamalama le faatonu o le VBA o loʻo i ai se faʻataʻitaʻiga i luma laitipe a feagai ma se vaega o poloaiga o loʻo faʻapipiʻiina i le va o faʻamatalaga amata ma faʻaiʻu:

Sub ... Fa'ai'u Sub

VBA faiga “Sub”: Fa'ata'ita'iga 1. Fa'asagaga totonugalemu ma suiga tetele mata'itusi i se vaega filifilia o sela

Mafaufau i se faʻataʻitaʻiga o se faiga faigofie VBA laiti, o lana galuega o le suia lea o le faatulagaga o le vaega filifilia o sela. O sela o lo'o fa'atotonugalemu (tutusa ma fa'alava) ma le tele o le vai e sui i le tagata fa'aoga-fa'amaoti:

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

Lenei faiga laiti fai taga ae le toe maua mai se taunuuga.

O lenei fa'ata'ita'iga e fa'aaoga ai fo'i se fa'afinauga Filifiliga FontSize. Afai o le finauga FontSize e le'i pasia i taualumaga laiti, o lona tau fa'aletonu o le 10. Ae peita'i, afai o le finauga FontSize pasi i taualumaga laiti, ona seti lea o le tele o sela ua filifilia i le tele o le vai papatisoga ua fa'ailoa mai e le tagata fa'aoga.

VBA Sub Procedure: Fa'ata'ita'iga 2: Fa'aoga Tutotonu ma Mata'itusi Malosi'i i Vaega Filifilia o Cells

O le fa'agasologa o lo'o mulimuli mai e tutusa ma le fa'ato'a talanoaina, ae o le taimi lea, nai lo le toe fa'atupuina, e fa'aogaina ai se sitaili mata'itusi mata'utia i le tele o sela ua filifilia. O se fa'ata'ita'iga faiga laiti, lea e leai ni finauga:

Sub Format_Centered_And_Bold() Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Bold = Moni I'uga Lalo

Vala'au "Sub" Taualumaga i Excel VBA

Valaau VBA taualumaga "Sub" mai se isi faiga

Le vala'au i se VBA taualumaga laiti mai se isi faiga VBA, e tatau ona e tusia le upu autu valaʻau, igoa faiga laiti ma o loo i totonu o puipui o loo i ai finauga o le taualumaga. O loʻo faʻaalia i le faʻataʻitaʻiga o loʻo i lalo:

Ulua'i() Valaau Fa'atonu_Tutotonu_Ma_Lapopo'a(20) Fa'ai'u Sub

Afai o le taualumaga Format_Centered_And_Sized e sili atu ma le tasi le finauga, e tatau ona tuueseese i koma. Faapei o lea:

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

Valaau VBA taualumaga “Sub” mai le pepa o galuega

taualumaga laiti e le mafai ona tu'u sa'o i totonu o se laupepa Excel, e mafai ona faia i se fa'agasologa galuega tauaveaua o le faiga laiti e le toe faafoi mai se tau. Peitai, taualumaga laiti, ia e leai ni finauga ma e ta'u mai e Malo (e pei ona fa'aalia i lalo) o le a avanoa mo tagata fa'aoga le pepa o galuega. O le mea lea, pe a fai o faiga faigofie na talanoaina i luga laiti fa'aofi i totonu o se module i le Visual Basic Editor, le fa'agasologa Format_Centered_And_Bold o le a avanoa mo le faʻaaogaina i se Excel worksheet, ma le faʻatinoga Format_Centered_And_Sized – o le a le avanoa ona e iai finauga.

Ole auala faigofie lea e tamo'e ai (pe fa'atino) se faiga laiti, e mafai ona maua mai le pepa o galuega:

  • nusipepa Alt + F8 (oomi le ki Alt ma ao uu i lalo, oomi le ki F8).
  • I le lisi o macros o loʻo faʻaalia, filifili le mea e te manaʻo e tamoe ai.
  • nusipepa momoʻe (tamomoe)

Ia faia se faiga laiti vave ma faigofie, e mafai ona e atofa i ai se ala pupuu keyboard. Mo lenei:

  • nusipepa Alt + F8.
  • I le lisi o macros o loʻo faʻaalia, filifili le mea e te manaʻo e tuʻuina atu i ai se ala pupuu keyboard.
  • nusipepa le faataamilosaga (Filifiliga) ma i totonu o le pusa faʻatalanoaga o loʻo faʻaalia, ulufale i le auala puʻupuʻu.
  • nusipepa OK ma tapuni le talanoaga Macro (Macro).

atu: Pe a tuʻuina atu se alalaupapa keyboard i se macro, ia mautinoa e le o faʻaaogaina e avea ma tulaga masani i Excel (mo se faʻataʻitaʻiga, Ctrl + C). Afai e te filifilia se ala pupuu o loʻo i ai nei, o le a toe tuʻuina atu i le macro, ma o se taunuuga, e mafai e le tagata faʻaoga ona amataina le macro i se mea faʻafuaseʻi.

VBA Taualumaga Va'aiga

Vaega 2 o lenei aʻoaʻoga faʻatalanoaina le lautele o fesuiaiga ma tumau ma le matafaioi o upu autu. Malo и patino. O nei upu autu e mafai foi ona faʻaogaina i VBA taualumaga:

Public Sub AddToCells(i As Integer) ... End Sub
Afai o le ta'utinoga fa'agaioiga e muamua i le upu autu Malo, ona avanoa lea o le fa'agasologa i modules uma i lena poloketi VBA.
Private Sub AddToCells(i As Integer) ... End Sub
Afai o le ta'utinoga fa'agaioiga e muamua i le upu autu patino, ona maua lea o lenei faiga mo na'o le module o lo'o iai nei. E le mafai ona vala'au a'o iai i so'o se isi module po'o se tusi faigaluega Excel.

Manatua pe afai ae leʻi faʻaalia se faiga VBA galuega tauave or laiti e le'i fa'aofiina le upu autu, ua fa'atulaga le meatotino fa'aletonu mo le fa'atinoga Malo (o lona uiga, o le a maua i soo se mea i lenei VBA poloketi). E fa'afeagai lea ma ta'utinoga fesuia'i, lea e fa'aletonu patino.

Ulutala vave mai VBA taualumaga "Function" ma le "Sub"

Afai e te manaʻomia le faʻamutaina o le faʻatinoina o se VBA taualumaga galuega tauave or laiti, e aunoa ma le faʻatali mo lona iʻuga masani, ona mo lenei mea o loʻo i ai tagata faʻatautaia Ofo Galuega и Alu i lalo. O le faʻaogaina o nei faʻalapotopotoga o loʻo faʻaalia i lalo e faʻaaoga ai se faiga faigofie e fai ma faʻataʻitaʻiga. galuega tauaveA o lo'o fa'amoemoe e maua se finauga lelei e fa'atino ai nisi gaioiga. Afai e tuʻuina atu se tau e le lelei i le faʻagasologa, ona leai lea o se isi gaioiga e mafai ona faia, o lea e tatau ai i le tagata faʻaoga ona faʻaalia se feʻau sese ma e tatau ona alu ese vave le faʻatinoga:

Galuega VAT_Amount(sVAT_Rate As Single) As Single VAT_Amount = 0 Afai sVAT_Rate <= 0 Ona MsgBox "Fa'amoemoeina se aoga lelei o le sVAT_Rate ae Maua" & sVAT_Rate Tu'u ese Galuega Fa'amuta pe a ... Fa'ai'u Galuega

Faamolemole ia matau a o lei faamaeaina le faiga galuega tauave - VAT_Aofa'i, o loʻo faʻapipiʻiina se galuega VBA fausia i totonu o le code MsgBox, lea e fa'aalia ai se fa'aaliga fa'aalia i le tagata fa'aoga.

Tuua se tali