Arbetsbladets funktioner i VBA -makron med VBA i Microsoft Excel

Anonim

I VBA -kod, om du måste hänvisa till vissa kalkylbladsfunktioner som Sum, Vlookup, etc, kan du använda dem direkt med hjälp av applikationsobjektet. Så vi kommer att använda funktionerna som -

Application.WorksheetFunction.Sum eller Application.WorksheetFunction.Vlookup var WorksheetFunction är metoden för applikationsobjektet.

Med tanke på att vi har det här testmakrot, om vi skriver

Application.WorksheetFunction.

Vi kommer att få en popup som visar formlerna se bilden nedan

Så om du till exempel vill summera värdena för detta intervall i kolumn A med vba -

Låt oss ha en variabel som heter SalesTotal som sparar summan i den. För att få totalt i SalesTotal kommer vi att använda följande VBA -kod i standardmodulen:

Submakro4 ()
Dim SalesTotal As Long
SalesTotal = Application.WorksheetFunction.Sum (intervall ("A2: A6"))
MsgBox SalesTotal
Avsluta Sub

För att kopiera ovanstående kod till din fil,

  • Tryck på Alt + F11 på tangentbordet.
  • På vänster sida ser du Microsoft Excel -objekt.
  • Högerklicka och välj Infoga.
  • Klicka sedan på Modul.
  • Kopiera koden till kodfönstret till höger.

När vi använder detta exempelmakro får vi ett meddelande som visar värdet som lagras i försäljningssumman och kan användas i ytterligare kodrader i makrot.

Utgången vi kommer att få är -

Om du vill att SalesTotal ska visas i cell A7 kan du ändra kodraden från

Msgbox SalesTotaltill Arbetsblad ("Sheet1"). Omfång ("A7"). Value = SalesTotal

Med tanke på att vi också behöver den genomsnittliga försäljningen för dessa siffror i cell A9. Vi kan använda koden nedan

Undermakro5 ()
Dim SalesTotal As Long
Med kalkylblad ("Sheet1")
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range ("A7"). Värde = SalesTotal
.Range ("A9"). Value = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Sluta med
Avsluta Sub

Det finns små ändringar av denna kod jämfört med den föregående.

  • Istället för att använda en variabel för Genomsnitt, fyllde jag direkt det värdet efter beräkning i cell A9. Därför ser du raden .Range ("A9"). Value = Application.WorksheetFunction.Average (.Range ("A2: A6"))
  • Msgbox -raden har tagits bort.
  • Värdet i variabeln SalesTotal går till cell A7.
  • Helst kan du upprepa samma kodrad som har använts för genomsnittet, för summan kodrad genom att ersätta

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

.Range (“A7”). Värde = SalesTotal

Med

.Range ("A7"). Värde = Application.WorksheetFunction.Sum (.Range ("A2: A6"))

Den har dock behållits så att du kan förstå de olika sätten att koda samma uppgift. På samma sätt kan vi använda andra funktioner när vi använder Application.WorksheetFunction. Alla de funktioner som vi kan använda i kalkylbladet direkt, vi kan använda dem här.

Detta gör det lättare att använda funktionerna i koden så att vi kan beräkna de formler som krävs utan att behöva skapa en kod för formeln.

Om du gillade våra bloggar, dela den med dina vänner på Facebook. Och du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra, komplettera eller förnya vårt arbete och göra det bättre för dig. Skriv till oss på e -postsajt