Funkcje arkusza kalkulacyjnego w makrach VBA przy użyciu VBA w Microsoft Excel

Anonim

W kodzie VBA, jeśli musisz odwoływać się do pewnych funkcji arkusza roboczego, takich jak Sum, Vlookup itp., możesz ich użyć bezpośrednio za pomocą obiektu Application. Użyjemy więc funkcji jako -

Application.WorksheetFunction.Sum lub Application.WorksheetFunction.Vlookup gdzie WorksheetFunction to metoda obiektu Application.

Biorąc pod uwagę, że mamy to makro testowe, jeśli wpiszemy

Aplikacja.WorksheetFunkcja.

Otrzymamy wyskakujące okienko z formułami, które odnoszą się do poniższego obrazu

Na przykład, jeśli chcesz zsumować wartości tego zakresu w kolumnie A za pomocą vba -

Miejmy zmienną o nazwie SalesTotal, która zapisze w niej sumę. Aby uzyskać sumę w SalesTotal, użyjemy następującego kodu VBA w standardowym module:

Submakro4()
Sprzedaż przyćmionych łącznie za długo
SalesTotal = Application.WorksheetFunction.Sum(Range("A2:A6"))
Suma sprzedaży MsgBox
Napis końcowy

Aby skopiować powyższy kod do swojego pliku,

  • Naciśnij Alt + F11 na klawiaturze.
  • Po lewej stronie zobaczysz obiekty Microsoft Excel.
  • Kliknij prawym przyciskiem myszy i wybierz Wstaw.
  • Następnie kliknij Moduł.
  • Skopiuj kod do okna kodu po prawej stronie.

Gdy użyjemy tego przykładowego makra, otrzymamy komunikat pokazujący wartość, która jest przechowywana w Sales Total i może być użyta w dalszych liniach kodu w makrze.

Wynik, który otrzymamy, to -

Jeśli chcesz, aby SalesTotal był wyświetlany w komórce A7, możesz zmienić linię kodu z

Suma sprzedaży Msgboxdo Arkusze(„Arkusz1”).Zakres(„A7”).Wartość = Suma sprzedaży

Biorąc pod uwagę, że potrzebujemy również średniej sprzedaży dla tych liczb w komórce A9. Możemy użyć poniższego kodu

Submakro5()
Sprzedaż DimTotal As Long
Z Arkuszami("Arkusz1")
SalesTotal = Application.WorksheetFunction.Sum(.Range("A2:A6"))
.Range("A7").Value = Suma sprzedaży
.Range("A9").Value = Aplikacja.WorksheetFunction.Average(.Range("A2:A6"))
Kończyć z
Napis końcowy

W tym kodzie wprowadzono niewielkie zmiany w stosunku do poprzedniego.

  • Zamiast używać zmiennej dla średniej, bezpośrednio wypełniłem tę wartość po obliczeniu w komórce A9. Stąd zobaczysz wiersz .Range(„A9”).Value = Application.WorksheetFunction.Average(.Range(„A2:A6”))
  • Linia msgbox została usunięta.
  • Wartość w zmiennej SalesTotal trafia do komórki A7.
  • Idealnie, możesz powtórzyć tę samą linię kodu, która została użyta dla średniej, dla linii kodu Sum, zastępując

Suma sprzedaży = Aplikacja.Funkcja arkusza roboczego.Suma(.Zakres("A2:A6"))

.Zakres(„A7”).Wartość = Suma sprzedaży

Z

.Zakres(„A7”).Wartość = Aplikacja.Funkcja Arkusza.Suma(.Zakres(„A2:A6”))

Zostało to jednak zachowane, aby można było zrozumieć różne sposoby kodowania tego samego zadania. Podobnie możemy korzystać z innych funkcji podczas korzystania z Application.WorksheetFunction. Wszystkie te funkcje, które możemy wykorzystać bezpośrednio w arkuszu, możemy wykorzystać tutaj.

Ułatwia to korzystanie z funkcji w kodzie, dzięki czemu możemy obliczyć wymagane formuły bez konieczności tworzenia kodu formuły.

Jeśli podobały Ci się nasze blogi, podziel się nimi ze znajomymi na Facebooku. A także możesz śledzić nas na Twitterze i Facebooku.
Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy ulepszyć, uzupełnić lub unowocześnić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na witryna e-mail