Werkbladfuncties in VBA-macro's met VBA in Microsoft Excel

Anonim

Als u in VBA-code naar bepaalde werkbladfuncties zoals Sum, Vlookup, enz. Moet verwijzen, kunt u deze rechtstreeks gebruiken door het toepassingsobject te gebruiken. Dus we zullen de functies gebruiken als -

Application.WorksheetFunction.Sum of Application.WorksheetFunction.Vlookup waar WorksheetFunction is de methode van het Application-object.

Aangezien we deze testmacro hebben, als we typen

Toepassing.WerkbladFunctie.

We krijgen een pop-up met de formules, zie onderstaande afbeelding:

Dus als u bijvoorbeeld de waarden van dit bereik in kolom A wilt optellen met vba -

Laten we een variabele hebben met de naam SalesTotal die de som erin opslaat. Om het totaal in SalesTotal te krijgen, gebruiken we de volgende VBA-code in de standaardmodule:

Submacro4()
Gedimde verkoopTotaal zo lang
SalesTotal = Application.WorksheetFunction.Sum(Bereik ("A2:A6"))
MsgBox VerkoopTotaal
Einde sub

Om de bovenstaande code naar uw bestand te kopiëren,

  • Druk op Alt + F11 op het toetsenbord.
  • Aan de linkerkant ziet u Microsoft Excel-objecten.
  • Klik met de rechtermuisknop en selecteer Invoegen.
  • Klik vervolgens op Module.
  • Kopieer de code naar het codevenster aan de rechterkant.

Wanneer we deze voorbeeldmacro gebruiken, krijgen we een bericht met de waarde die is opgeslagen in Sales Total en kan worden gebruikt in verdere coderegels in de macro.

De output die we zullen krijgen is -

Als u wilt dat het VerkoopTotaal wordt weergegeven in cel A7, kunt u de coderegel wijzigen van

Msgbox VerkoopTotaaltot Werkbladen ("Blad1"). Bereik ("A7"). Waarde = Verkooptotaal

Aangezien we voor deze cijfers ook de gemiddelde omzet nodig hebben in cel A9. We kunnen de onderstaande code gebruiken:

Submacro5()
Gedimde verkoopTotaal zo lang
Met werkbladen ("Blad1")
SalesTotal = Application.WorksheetFunction.Sum(.Range("A2:A6"))
.Bereik ("A7"). Waarde = Verkooptotaal
.Bereik("A9").Waarde = Toepassing.WerkbladFunctie.Average(.Bereik ("A2:A6"))
Eindigt met
Einde sub

Er zijn kleine wijzigingen in deze code in vergelijking met de vorige.

  • In plaats van een variabele voor het gemiddelde te gebruiken, heb ik die waarde na berekening direct ingevuld in cel A9. Daarom ziet u de regel .Range(“A9”).Value = Application.WorksheetFunction.Average(.Range(“A2:A6”))
  • De msgbox-regel is verwijderd.
  • De waarde in de variabele SalesTotal gaat naar cel A7.
  • In het ideale geval kunt u dezelfde coderegel die voor het gemiddelde is gebruikt, herhalen voor de coderegel Som door te vervangen

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

.Bereik ("A7"). Waarde = Verkooptotaal

Met

.Bereik ("A7"). Waarde = Toepassing.WerkbladFunctie.Sum (.Bereik ("A2:A6"))

Het is echter bewaard gebleven, zodat u de verschillende manieren kunt begrijpen om dezelfde taak te coderen. Op dezelfde manier kunnen we andere functies gebruiken tijdens het gebruik van Application.WorksheetFunction. Al die functies die we direct in het werkblad kunnen gebruiken, kunnen we hier gebruiken.

Dit maakt het gemakkelijker om de functies in de code te gebruiken, zodat we de vereiste formules kunnen berekenen zonder een code voor de formule te hoeven maken.

Als je onze blogs leuk vond, deel deze dan met je vrienden op Facebook. En je kunt ons ook volgen op Twitter en Facebook.
We horen graag van je, laat ons weten hoe we ons werk kunnen verbeteren, aanvullen of vernieuwen en het voor jou beter kunnen maken. Schrijf ons op e-mailsite