Regnearksfunktioner i VBA -makroer ved hjælp af VBA i Microsoft Excel

Anonim

I VBA -kode, hvis du skal henvise til visse regnearksfunktioner som Sum, Vlookup osv., Kan du bruge dem direkte ved hjælp af applikationsobjektet. Så vi vil bruge funktionerne som -

Application.WorksheetFunction.Sum eller Application.WorksheetFunction.Vlookup hvor WorksheetFunction er metoden for Application -objektet.

I betragtning af at vi har denne testmakro, hvis vi skriver

Application.WorksheetFunktion.

Vi får en popup, der viser formlerne, se billedet nedenfor

Så hvis du f.eks. Vil opsummere værdierne for dette område i kolonne A ved hjælp af vba -

Lad os have en variabel kaldet SalesTotal, som gemmer summen i den. For at få total i SalesTotal vil vi bruge følgende VBA -kode i standardmodul:

Undermakro4 ()
Dim SalesTotal så længe
SalesTotal = Application.WorksheetFunction.Sum (område ("A2: A6"))
MsgBox SalesTotal
Afslut Sub

For at kopiere ovenstående kode til din fil,

  • Tryk på Alt + F11 på tastaturet.
  • På venstre side ser du Microsoft Excel -objekter.
  • Højreklik og vælg Indsæt.
  • Klik derefter på modul.
  • Kopier koden til kodevinduet til højre.

Når vi bruger denne prøve -makro, får vi en meddelelse, der viser den værdi, der er gemt i salgssum og kan bruges i yderligere kodelinjer i makroen.

Det output, vi får, er -

Hvis du vil have SalesTotal vist i celle A7, kan du ændre kodelinjen fra

Msgbox SalesTotaltil Regneark ("Ark1"). Område ("A7"). Værdi = Salgsum

I betragtning af at vi også har brug for det gennemsnitlige salg for disse tal i celle A9. Vi kan bruge koden herunder

Undermakro5 ()
Dim SalesTotal så længe
Med regneark ("Sheet1")
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range ("A7"). Værdi = SalesTotal
.Range ("A9"). Værdi = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Afslut med
Afslut Sub

Der er små ændringer i denne kode i forhold til den forrige.

  • I stedet for at bruge en variabel til gennemsnittet, udfyldte jeg denne værdi direkte efter beregning i celle A9. Derfor vil du se linjen .Range (“A9”). Value = Application.WorksheetFunction.Average (.Range (“A2: A6”))
  • Msgbox -linjen er blevet fjernet.
  • Værdien i variablen SalesTotal går til celle A7.
  • Ideelt set kan du gentage den samme kodelinje, som er blevet brugt til gennemsnittet, for sumkodelinjen ved at erstatte

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

.Range (“A7”). Værdi = Salgsum

Med

.Range (“A7”). Værdi = Application.WorksheetFunction.Sum (.Range (“A2: A6”)))

Det er imidlertid blevet bevaret, så du kan forstå de forskellige måder at kode den samme opgave på. På samme måde kan vi bruge andre funktioner, mens vi bruger Application.WorksheetFunction. Alle de funktioner, som vi kan bruge i regnearket direkte, vi kan bruge dem her.

Dette gør det lettere at bruge funktionerne i koden, så vi kan beregne de nødvendige formler uden at skulle oprette en kode til formlen.

Hvis du kunne lide vores blogs, kan du dele den med dine venner på Facebook. Og også du kan følge os på Twitter og Facebook.
Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre, supplere eller innovere vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -websted