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