Funcțiile foii de lucru în macrocomenzile VBA folosind VBA în Microsoft Excel

Anonim

În codul VBA, dacă trebuie să faceți referire la anumite funcții ale foii de lucru, cum ar fi Sum, Vlookup, etc., le puteți utiliza direct folosind obiectul Application. Deci vom folosi funcțiile ca -

Application.WorksheetFunction.Sum sau Application.WorksheetFunction.Vlookup Unde WorksheetFunction este metoda obiectului Application.

Având în vedere că avem această macro de testare, dacă tastăm

Application.WorksheetFunction.

Vom primi o fereastră pop-up care va arăta formulele de mai jos

De exemplu, dacă doriți să însumați valorile acestui interval în coloana A folosind vba -

Să avem o variabilă numită SalesTotal care va salva suma în ea. Pentru a obține total în SalesTotal, vom utiliza următorul cod VBA în modulul standard:

Sub macro4 ()
Vânzări reduse Total ca lung
SalesTotal = Application.WorksheetFunction.Sum (Range ("A2: A6"))
MsgBox SalesTotal
Sfârșitul Sub

Pentru a copia codul de mai sus în fișierul dvs.,

  • Apăsați Alt + F11 pe tastatură.
  • În partea stângă, veți vedea Microsoft Excel Objects.
  • Faceți clic dreapta și selectați Inserați.
  • Apoi faceți clic pe Modul.
  • Copiați codul în fereastra de cod din dreapta.

Când folosim acest exemplu de macrocomandă, vom primi un mesaj care arată valoarea stocată în Total vânzări și care poate fi utilizată în alte linii de cod din macrocomandă.

Rezultatul pe care îl vom obține este -

Dacă doriți ca SalesTotal să fie afișat în celula A7, puteți schimba linia de cod din

Msgbox SalesTotalla Foi de lucru („Sheet1”). Interval („A7”). Valoare = Total vânzări

Având în vedere că avem nevoie și de vânzările medii pentru aceste cifre în celula A9. Putem folosi codul de mai jos

Sub macro5 ()
Vânzări reduse Total ca lung
Cu foi de lucru („Sheet1”)
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range ("A7"). Valoare = Total vânzări
.Range ("A9"). Valoare = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Se termina cu
Sfârșitul Sub

Există mici modificări la acest cod în comparație cu cel anterior.

  • În loc să folosesc o variabilă pentru Media, am populat direct acea valoare după calcul în celula A9. Prin urmare, veți vedea linia .Range („A9”). Value = Application.WorksheetFunction.Average (.Range („A2: A6”))
  • Linia msgbox a fost eliminată.
  • Valoarea din variabila SalesTotal merge la celula A7.
  • În mod ideal, puteți repeta aceeași linie de cod care a fost utilizată pentru medie, pentru linia de cod Sum, înlocuind

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

.Gama („A7”). Valoare = Total vânzări

Cu

.Range („A7”). Valoare = Application.WorksheetFunction.Sum (.Range („A2: A6”))

Cu toate acestea, a fost păstrat astfel încât să puteți înțelege diferitele moduri de codificare a aceleiași sarcini. În mod similar, putem utiliza alte funcții în timp ce folosim Application.WorksheetFunction. Toate acele funcții pe care le putem folosi direct în foaia de lucru le putem folosi aici.

Acest lucru face mai ușoară utilizarea funcțiilor din cod, astfel încât să putem calcula formulele necesare fără a fi nevoie să creăm un cod pentru formulă.

Dacă ți-au plăcut blogurile noastre, împărtășește-le prietenilor tăi de pe Facebook. Și, de asemenea, ne puteți urmări pe Twitter și Facebook.
Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți, completa sau inova munca noastră și să o îmbunătățim. Scrie-ne la site de e-mail