Użyj funkcji arkusza roboczego w makrze - przykłady kodu VBA

Istnieje wiele sposobów korzystania z funkcji w VBA. VBA jest wyposażony w wiele wbudowanych funkcji. Możesz nawet tworzyć własne funkcje (UDF). Możesz jednak również korzystać z wielu funkcji Excela w VBA, używając Application.WorksheetFunction.

Jak korzystać z funkcji arkusza roboczego w VBA

Aby uzyskać dostęp do funkcji Excela w VBA, dodaj Application.WorksheetFunction przed funkcją, którą chcesz wywołać. W poniższym przykładzie nazwiemy funkcję Max Excela:

12 Dim maxvalue tak długomaxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)

Składnia funkcji jest taka sama, jednak argumenty funkcji będą wprowadzane tak samo, jak każda inna funkcja VBA.

Zauważ, że składnia funkcji Max pojawia się podczas pisania (podobnie jak w przypadku funkcji VBA):

Arkusz roboczyMetoda funkcji

WorksheetFunction to metoda obiektu Application. Umożliwia dostęp do wielu (nie wszystkich) standardowych funkcji arkusza Excel. Ogólnie rzecz biorąc, nie uzyskasz dostępu do żadnych funkcji arkusza roboczego, które mają odpowiednią wersję VBA.

Poniżej możesz zobaczyć listę wielu najpopularniejszych funkcji arkusza roboczego.

Aplikacja.WorksheetFunkcja a aplikacja

W rzeczywistości istnieją dwa sposoby uzyskania dostępu do tych funkcji:

Application.WorksheetFunction (jak widać powyżej):

1 maxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)

lub możesz pominąć funkcję arkusza roboczego

1 maxvalue = Application.Max(Range("a1").Value, Range("a2").Value)

Niestety, pominięcie WorksheetFunction wyeliminuje Intellisense, który wyświetla składnię (patrz obrazek powyżej). Ma jednak jedną dużą potencjalną zaletę: Obsługa błędów.

Jeśli używasz aplikacji, a twoja funkcja wygeneruje błąd, zwróci wartość błędu. Jeśli użyjesz metody WorksheetFunction, VBA zgłosi błąd w czasie wykonywania. Oczywiście możesz poradzić sobie z błędem VBA, ale zwykle lepiej jest przede wszystkim uniknąć błędu.

Spójrzmy na przykład, aby zobaczyć różnicę:

Vlookup WorksheetObsługa błędów funkcji

Spróbujemy wykonać Vlookup, który nie zakończy się dopasowaniem. Tak więc funkcja Vlookup zwróci błąd.

Najpierw użyjemy metody WorksheetFunction. Zwróć uwagę, jak VBA zgłasza błąd:

Następnie pomijamy WorksheetFunction. Zwróć uwagę, jak

Następnie pominiemy WorksheetFunction. Zwróć uwagę, że nie jest zgłaszany żaden błąd, a zamiast tego funkcja „wartość” zawiera wartość błędu z Vlookup.

Lista funkcji arkusza roboczego VBA

Poniżej znajdziesz listę większości popularnych funkcji arkusza roboczego VBA.

FunkcjonowaćOpis
Logiczny
ORAZSprawdza, czy wszystkie warunki są spełnione. PRAWDA FAŁSZ
JEŚLIJeśli warunek jest spełniony, zrób coś, jeśli nie, zrób coś innego.
JEŻELIBŁĄDJeśli wynik jest błędem, zrób coś innego.
LUBSprawdza, czy spełnione są jakiekolwiek warunki. PRAWDA FAŁSZ
Wyszukiwanie i odniesienie
WYBIERAĆWybiera wartość z listy na podstawie numeru pozycji.
WYSZUKAJ.POZIOMOWyszukaj wartość w pierwszym wierszu i zwróć wartość.
INDEKSZwraca wartość na podstawie numerów kolumn i wierszy.
SPOJRZEĆ W GÓRĘWyszukuje wartości w poziomie lub w pionie.
MECZWyszukuje wartość na liście i zwraca jej pozycję.
TRANSPONOWAĆOdwraca orientację zakresu komórek.
WYSZUKAJ.PIONOWOWyszukaj wartość w pierwszej kolumnie i zwróć wartość.
Data i czas
DATAZwraca datę z roku, miesiąca i dnia.
DATA.WARTOŚĆKonwertuje datę zapisaną jako tekst na prawidłową datę
DZIEŃZwraca dzień jako liczbę (1-31).
DNI360Zwraca dni między 2 datami w 360-dniowym roku.
EDATEZwraca datę w odległości n miesięcy od daty rozpoczęcia.
EOMIESIĄCZwraca ostatni dzień miesiąca, datę nieobecności n miesięcy.
GODZINAZwraca godzinę jako liczbę (0-23).
MINUTAZwraca minutę jako liczbę (0-59).
MIESIĄCZwraca miesiąc jako liczbę (1-12).
DNI ROBOCZELiczba dni roboczych między 2 datami.
DNI.ROBOCZE.NIESTANDDni robocze od 2 dat, weekendy niestandardowe.
TERAZZwraca bieżącą datę i godzinę.
DRUGAZwraca sekundę jako liczbę (0-59)
CZASZwraca czas z godziny, minuty i sekundy.
WARTOŚĆ CZASUKonwertuje czas przechowywany jako tekst na poprawny czas.
DZIEŃ POWSZEDNIZwraca dzień tygodnia jako liczbę (1-7).
WEEKNUMZwraca numer tygodnia w roku (1-52).
DZIEŃ ROBOCZYData n dni roboczych od daty.
ROKZwraca rok.
YEARFRACZwraca ułamek roku między 2 datami.
Inżynieria
KONWERTOWAĆKonwertuj liczbę z jednej jednostki na drugą.
Budżetowy
FVOblicza przyszłą wartość.
PVOblicza aktualną wartość.
NPEROblicza łączną liczbę okresów płatności.
PMTOblicza kwotę płatności.
WSKAŹNIKOblicza stopę procentową.
NPVOblicza bieżącą wartość netto.
IRRWewnętrzna stopa zwrotu dla zestawu okresowych CF.
XIRRWewnętrzna stopa zwrotu dla zestawu nieokresowych CF.
CENA £Oblicza cenę obligacji.
WEWNĘTRZNYOprocentowanie w pełni zainwestowanego papieru wartościowego.
Informacja
ISERRSprawdź, czy wartość komórki jest błędem, ignoruje #N/A. PRAWDA FAŁSZ
CZY.BŁĄDSprawdź, czy wartość komórki jest błędem. PRAWDA FAŁSZ
ISEVENSprawdź, czy wartość komórki jest parzysta. PRAWDA FAŁSZ
IZLOGICZNYSprawdź, czy komórka jest logiczna (PRAWDA lub FAŁSZ). PRAWDA FAŁSZ
ISNASprawdź, czy wartość komórki to #N/A. PRAWDA FAŁSZ
ISNONTEKSTSprawdź, czy komórka nie jest tekstem (puste komórki nie są tekstem). PRAWDA FAŁSZ
CZY.LICZBASprawdź, czy komórka jest liczbą. PRAWDA FAŁSZ
TO JEST DZIWNESprawdź, czy wartość komórki jest nieparzysta. PRAWDA FAŁSZ
CZYTEKSTSprawdź, czy komórka jest tekstem. PRAWDA FAŁSZ
RODZAJZwraca typ wartości w komórce.
Matematyka
ABSOblicza wartość bezwzględną liczby.
AGREGATZdefiniuj i wykonuj obliczenia dla bazy danych lub listy.
SUFITZaokrągla liczbę w górę do najbliższej określonej wielokrotności.
SAŁATAZwraca cosinus kąta.
STOPNIEKonwertuje radiany na stopnie.
DSUMSumuje rekordy bazy danych, które spełniają określone kryteria.
PARZYSTYZaokrągla do najbliższej parzystej liczby całkowitej.
do potęgiOblicza wartość wykładniczą dla podanej liczby.
FAKTZwraca silnię.
PIĘTROZaokrągla liczbę w dół, do najbliższej określonej wielokrotności.
GCDZwraca największy wspólny dzielnik.
WEWNZaokrągla liczbę w dół do najbliższej liczby całkowitej.
LCMZwraca najmniejszą wspólną wielokrotność.
LNZwraca logarytm naturalny liczby.
DZIENNIKZwraca logarytm liczby do określonej podstawy.
LOG10Zwraca logarytm dziesiętny liczby.
MROUNDZaokrągla liczbę do określonej wielokrotności.
DZIWNEZaokrągla do najbliższej nieparzystej liczby całkowitej.
Liczba PiWartość PI.
MOCOblicza liczbę podniesioną do potęgi.
PRODUKTMnoży tablicę liczb.
ILORAZZwraca całkowity wynik dzielenia.
RADIANYKonwertuje kąt na radiany.
RANDBETWEENOblicza liczbę losową między dwiema liczbami.
OKRĄGŁYZaokrągla liczbę do określonej liczby cyfr.
ZAOKRĄGLIĆ W DÓŁZaokrągla liczbę w dół (w kierunku zera).
PODSUMOWANIEZaokrągla liczbę w górę (od zera).
GRZECHZwraca sinus kąta.
SUMA CZĘŚCIOWAZwraca statystykę podsumowującą dla serii danych.
SUMADodaje liczby razem.
SUMASumuje liczby spełniające kryteria.
SUMIKISumuje liczby spełniające wiele kryteriów.
SUMA PRODUKTMnoży tablice liczb i sumuje tablicę wynikową.
DĘBNIKZwraca tangens kąta.
Statystyki
PRZECIĘTNYUśrednia liczby.
ŚREDNIA JEŻELIUśrednia liczby spełniające kryteria.
ŚREDNIAIFSUśrednia liczby spełniające wiele kryteriów.
WSPÓŁPRACAOblicza korelację dwóch szeregów.
LICZYĆZlicza komórki zawierające liczbę.
LICZBAPolicz komórki, które nie są puste.
LICZ.PUSTEZlicza komórki, które są puste.
LICZ.JEŻELIZlicza komórki spełniające kryteria.
LICZNIKIZlicza komórki spełniające wiele kryteriów.
PROGNOZAPrzewiduj przyszłe wartości y na podstawie linii trendu liniowego.
CZĘSTOTLIWOŚĆZlicza wartości mieszczące się w określonych zakresach.
WZROSTOblicza wartości Y na podstawie wzrostu wykładniczego.
PRZECHWYCIĆOblicza punkt przecięcia Y dla linii najlepiej dopasowanej.
DUŻYZwraca k-tą największą wartość.
LINIIZwraca statystyki dotyczące linii trendu.
MAXZwraca największą liczbę.
MEDIANAZwraca medianę.
MINZwraca najmniejszą liczbę.
TRYBZwraca najczęściej spotykaną liczbę.
PERCENTYLZwraca k-ty percentyl.
PERCENTYL.INCZwraca k-ty percentyl. Gdzie k jest włącznie.
PERCENTYL.EXCZwraca k-ty percentyl. Gdzie k jest wyłączne.
KWARTYLZwraca określoną wartość kwartyla.
KWARTYL.INCZwraca określoną wartość kwartyla. Włącznie.
KWARTYL.EXCZwraca określoną wartość kwartyla. Ekskluzywny.
RANGAPozycja liczby w serii.
RANK.ŚREDNIAPozycja liczby w serii. Średnie.
RANK.R.Pozycja liczby w serii. Najwyższy ranking.
NACHYLENIEOblicza nachylenie z regresji liniowej.
MAŁYZwraca k-tą najmniejszą wartość.
ODCH.STANDARDOWEOblicza odchylenie standardowe.
ODCH.STANDARDOWE.POblicza SD całej populacji.
ODCH.STANDARDOWEOblicza SD próbki.
ODCH.STANDARDOWEOblicza SD całej populacji
TENDENCJAOblicza wartości Y na podstawie linii trendu.
Tekst
CZYSTYUsuwa wszystkie niedrukowalne znaki.
DOLARKonwertuje liczbę na tekst w formacie waluty.
ODNALEŹĆLokalizuje pozycję tekstu w komórce.Rozróżniana jest wielkość liter.
LEWOObcina tekst o kilka znaków od lewej.
LENZlicza liczbę znaków w tekście.
ŚRODEKWyodrębnia tekst ze środka komórki.
WŁAŚCIWYKonwertuje tekst na poprawną wielkość liter.
WYMIENIĆZastępuje tekst na podstawie jego lokalizacji.
POWTPowtarza tekst kilka razy.
PRAWIDŁOWYObcina tekst o kilka znaków od prawej.
SZUKAJLokalizuje pozycję tekstu w komórce. Nie uwzględnia wielkości liter.
ZASTĄPIĆZnajduje i zamienia tekst. Wielkość liter ma znaczenie.
TEKSTKonwertuje wartość na tekst o określonym formacie liczbowym.
PRZYCINAĆUsuwa wszystkie dodatkowe spacje z tekstu.
wave wave wave wave wave