Funkcije delovnega lista v makrih VBA z uporabo VBA v programu Microsoft Excel

Anonim

Če se morate v kodi VBA sklicevati na določene funkcije delovnega lista, kot so Sum, Vlookup itd., Jih lahko uporabite neposredno z uporabo predmeta Application. Zato bomo funkcije uporabljali kot -

Application.WorksheetFunction.Sum ali Application.WorksheetFunction.Vlookup kje WorksheetFunction je metoda predmeta aplikacije.

Če vtipkamo, imamo ta testni makro

Application.WunksheetFunction.

Dobili bomo pojavno okno, ki prikazuje formule, ki se nanašajo na spodnjo sliko

Če želite na primer vrednosti tega območja sešteti v stolpcu A z uporabo vba -

Imejmo spremenljivko SalesTotal, ki bo vanj shranila vsoto. Za pridobitev skupnega zneska v SalesTotal bomo v standardnem modulu uporabili naslednjo kodo VBA:

Podmakro4 ()
Dim SalesTotal As Long
SalesTotal = Application.WorksheetFunction.Sum (obseg ("A2: A6"))
MsgBox SalesTotal
End Sub

Če želite zgornjo kodo kopirati v svojo datoteko,

  • Pritisnite Alt + F11 na tipkovnici.
  • Na levi strani boste videli predmete Microsoft Excel.
  • Z desno miškino tipko kliknite in izberite Vstavi.
  • Nato kliknite na Modul.
  • Kopirajte kodo v okno za kodo na desni.

Ko uporabimo ta vzorčni makro, bomo dobili sporočilo, ki prikazuje vrednost, ki je shranjena v skupni prodaji in jo je mogoče uporabiti v nadaljnjih kodnih vrsticah v makru.

Rezultat, ki ga bomo dobili, je -

Če želite, da je SalesTotal prikazan v celici A7, lahko spremenite kodno vrstico iz

Msgbox SalesTotaldo Delovni listi (»List1«). Obseg (»A7«). Vrednost = SalesTotal

Glede na to, da potrebujemo tudi povprečno prodajo teh številk v celici A9. Lahko uporabimo spodnjo kodo

Podmakro5 ()
Dim SalesStotal As Long
Z delovnimi listi ("List1")
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range ("A7"). Vrednost = SalesTotal
.Range ("A9"). Value = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Končaj s
End Sub

Ta koda je v primerjavi s prejšnjo nekoliko spremenjena.

  • Namesto da bi za povprečje uporabil spremenljivko, sem to vrednost neposredno po izračunu vnesel v celico A9. Tako boste videli vrstico .Range (“A9”). Value = Application.WorksheetFunction.Average (.Range (“A2: A6”))
  • Vrstica sporočila msgbox je bila odstranjena.
  • Vrednost v spremenljivki SalesTotal gre v celico A7.
  • V idealnem primeru lahko ponovite isto kodno vrstico, ki je bila uporabljena za povprečje, za kodno vrstico Vsota, tako da jo zamenjate

SalesTotal = Application.WorksheetFunction.Sum (.Range (»A2: A6«))

.Range (»A7«). Vrednost = SalesTotal

Z

.Range (“A7”). Value = Application.WorksheetFunction.Sum (.Range (“A2: A6”))

Vendar se je ohranil, tako da lahko razumete različne načine kodiranja iste naloge. Podobno lahko pri uporabi Application.WorksheetFunction uporabimo druge funkcije. Vse tiste funkcije, ki jih lahko uporabimo neposredno na delovnem listu, jih lahko uporabimo tukaj.

To olajša uporabo funkcij v kodi, tako da lahko izračunamo potrebne formule, ne da bi morali ustvariti kodo za formulo.

Če so vam bili naši blogi všeč, jih delite s prijatelji na Facebooku. Prav tako nas lahko spremljate na Twitterju in Facebooku.
Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo, dopolnimo ali inoviramo svoje delo in ga izboljšamo. Pišite nam na e -poštno mesto