Þó að VBA bjóði upp á ágætis úrval af innbyggðum aðgerðum, gætirðu ekki alltaf fundið nákvæmlega það sem þú þarft. Sem betur fer geturðu líka notað flestar vinnublaðsaðgerðir Excel í VBA verklagsreglunum þínum. Einu vinnublaðsaðgerðirnar sem þú getur ekki notað eru þær sem hafa samsvarandi VBA aðgerð. Til dæmis er ekki hægt að nota RAND fall Excel (sem býr til handahófskennda tölu) vegna þess að VBA hefur samsvarandi fall: Rnd.
VBA gerir vinnublaðsaðgerðir Excel aðgengilegar í gegnum WorksheetFunction hlutinn, sem er að finna í Application hlutnum. Hér er dæmi um hvernig þú getur notað SUM aðgerð Excel í VBA yfirlýsingu:
Samtals = Application.Worksheet Function.SUM(Range(“A1:A12”))
Þú getur annað hvort sleppt forritahlutanum eða WorksheetFunction hluta tjáningarinnar. Í báðum tilvikum finnur VBA út hvað þú ert að gera. Með öðrum orðum, þessar þrjár tjáningar virka allar nákvæmlega eins:
Samtals = Application.Worksheet Function.SUM(Range(“A1:A12”))
Samtals = Worksheet Function.SUM(Range(“A1:A12”))
Samtals = Application.SUM(Range(“A1:A12”))
Persónulega val mitt er að nota WorksheetFunction hlutann bara til að gera það fullkomlega ljóst að kóðinn notar Excel aðgerð.
Dæmi um virkni vinnublaðs
Hér uppgötvar þú hvernig á að nota vinnublaðsaðgerðir í VBA tjáningunum þínum.
Að finna hámarksgildi á bili
Hér er dæmi sem sýnir hvernig á að nota MAX vinnublaðsaðgerð Excel í VBA ferli. Þessi aðferð sýnir hámarksgildi í dálki A á virka vinnublaðinu:

Notaðu vinnublaðsaðgerð í VBA kóðanum þínum.
Sub ShowMax()
Dimma TheMax As Double
TheMax = WorksheetFunction.MAX(Range(“A:A”))
MsgBox TheMax
End Sub
Þú getur notað MIN aðgerðina til að fá minnsta gildi á bilinu. Og eins og þú gætir búist við geturðu notað aðrar vinnublaðsaðgerðir á svipaðan hátt. Til dæmis er hægt að nota LARGE fallið til að ákvarða k . stærsta gildið á bilinu. Eftirfarandi tjáning sýnir þetta:
SecondHighest = WorksheetFunction.LARGE(Range(“A:A”),2)
Taktu eftir að LARGE fallið notar tvö rök. Önnur rökin tákna k. hluta — 2, í þessu tilviki (næst stærsta gildið).
Útreikningur á greiðslu húsnæðislána
Næsta dæmi notar PMT vinnublaðsaðgerðina til að reikna út veðgreiðslu. Þrjár breytur eru notaðar til að geyma gögnin sem eru send til Pmt fallsins sem rök. Skilaboðakassi sýnir reiknaða greiðslu.
Undir PmtCalc()
Dimma InRate As Double
Dim LoanAmt As Double
Dimmt tímabil eins lengi
IntRate = 0,0625 / 12
Tímabil = 30 * 12
LánAmt = 150000
MsgBox WorksheetFunction.PMT(IntRate, Periods, -LoanAmt)
End Sub
Eins og eftirfarandi fullyrðing sýnir geturðu líka sett inn gildin beint sem fallarrök:
MsgBox Worksheet Function.PMT(0.0625 /12, 360, -150000)
Hins vegar, með því að nota breytur til að geyma færibreyturnar, er auðveldara að lesa kóðann og breyta, ef þörf krefur.
Að nota uppflettiaðgerð
Eftirfarandi dæmi notar VBA's InputBox og MsgBox aðgerðir, auk VLOOKUP aðgerð Excel. Það biður um hlutanúmer og fær síðan verðið úr uppflettitöflu. Hér að neðan er svið A1:B13 nefnt Verðlisti.

Sviðið, sem heitir Verðlisti, inniheldur verð fyrir varahluti.
Undir GetPrice()
Dimma PartNum Sem afbrigði
Dimt verð sem tvöfalt
PartNum = InputBox(„Sláðu inn hlutanúmerið“)
Sheets ("Verð"). Virkja
Verð = VinnublaðFunction.VLOOKUP(PartNum, Range(“PriceList”), 2, False)
MsgBox PartNum & “ kostnaður “ & Verð
End Sub
Svona virkar GetPrice málsmeðferðin:
-
InputBox aðgerð VBA biður notandann um hlutanúmer.
-
Hlutanúmerinu sem notandinn slær inn er úthlutað PartNum breytunni.
-
Næsta yfirlýsing virkjar verð vinnublaðið, bara ef það er ekki þegar virka blaðið.
-
Kóðinn notar VLOOKUP aðgerðina til að finna hlutanúmerið í töflunni.
-
Taktu eftir að rökin sem þú notar í þessari fullyrðingu eru þau sömu og þú myndir nota með fallinu í formúlu vinnublaðs. Þessi fullyrðing úthlutar niðurstöðu fallsins til verðbreytunnar.
-
Kóðinn sýnir verð fyrir hlutann í gegnum MsgBox aðgerðina.
Þessi aðferð hefur enga villumeðferð og hún mistekst hrapallega ef þú slærð inn hlutanúmer sem ekki er til. (Prófaðu það.) Ef þetta væri raunverulegt forrit sem er notað í raunverulegum viðskiptum, myndirðu vilja bæta við nokkrum fullyrðingum sem fjalla meira um villur.
Að slá inn verkefnablaðsaðgerðir
Þú getur ekki notað Excel Paste Function valmyndina til að setja vinnublaðsaðgerð inn í VBA einingu. Í staðinn skaltu slá inn slíkar aðgerðir á gamla mátann: með hendi. Hins vegar geturðu notað Paste Function valmyndina til að auðkenna aðgerðina sem þú vilt nota og finna út um rök þess.
Þú getur líka nýtt þér valmöguleika VBE Auto List Members, sem sýnir fellilista yfir allar aðgerðir vinnublaðsins. Sláðu bara inn Application.WorksheetFunction , fylgt eftir með punkti. Þá sérðu lista yfir þær aðgerðir sem þú getur notað. Ef þessi eiginleiki virkar ekki, veldu VBE's Tools → Options skipunina, smelltu á Editor flipann og settu hak við hliðina á Auto List Members.

Að fá lista yfir verkefnablaðsaðgerðir sem þú getur notað í VBA kóðanum þínum.
Meira um notkun vinnublaðsaðgerða
Nýliðar í VBA rugla oft saman innbyggðum aðgerðum VBA og vinnubókaraðgerðum Excel. Góð regla til að muna er að VBA reynir ekki að finna upp hjólið aftur. Að mestu leyti afritar VBA ekki Excel vinnublaðsaðgerðir.
Fyrir flestar vinnublaðsaðgerðir sem eru ekki tiltækar sem aðferðir fyrir WorksheetFunction hlutnum er hægt að nota jafngilda VBA innbyggða stjórnanda eða aðgerð. Til dæmis er MOD-verkstæðisaðgerðin ekki tiltæk í WorksheetFunction hlutnum vegna þess að VBA hefur jafngildi: innbyggður Mod-operator.
Kjarni málsins? Ef þú þarft að nota aðgerð skaltu fyrst ákvarða hvort VBA hafi eitthvað sem uppfyllir þarfir þínar. Ef ekki, skoðaðu verkefnablaðsaðgerðirnar. Ef allt annað mistekst gætirðu skrifað sérsniðna aðgerð með því að nota VBA.