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 | |
ORAZ | Sprawdza, czy wszystkie warunki są spełnione. PRAWDA FAŁSZ |
JEŚLI | Jeśli warunek jest spełniony, zrób coś, jeśli nie, zrób coś innego. |
JEŻELIBŁĄD | Jeśli wynik jest błędem, zrób coś innego. |
LUB | Sprawdza, czy spełnione są jakiekolwiek warunki. PRAWDA FAŁSZ |
Wyszukiwanie i odniesienie | |
WYBIERAĆ | Wybiera wartość z listy na podstawie numeru pozycji. |
WYSZUKAJ.POZIOMO | Wyszukaj wartość w pierwszym wierszu i zwróć wartość. |
INDEKS | Zwraca wartość na podstawie numerów kolumn i wierszy. |
SPOJRZEĆ W GÓRĘ | Wyszukuje wartości w poziomie lub w pionie. |
MECZ | Wyszukuje wartość na liście i zwraca jej pozycję. |
TRANSPONOWAĆ | Odwraca orientację zakresu komórek. |
WYSZUKAJ.PIONOWO | Wyszukaj wartość w pierwszej kolumnie i zwróć wartość. |
Data i czas | |
DATA | Zwraca 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). |
DNI360 | Zwraca dni między 2 datami w 360-dniowym roku. |
EDATE | Zwraca datę w odległości n miesięcy od daty rozpoczęcia. |
EOMIESIĄC | Zwraca ostatni dzień miesiąca, datę nieobecności n miesięcy. |
GODZINA | Zwraca godzinę jako liczbę (0-23). |
MINUTA | Zwraca minutę jako liczbę (0-59). |
MIESIĄC | Zwraca miesiąc jako liczbę (1-12). |
DNI ROBOCZE | Liczba dni roboczych między 2 datami. |
DNI.ROBOCZE.NIESTAND | Dni robocze od 2 dat, weekendy niestandardowe. |
TERAZ | Zwraca bieżącą datę i godzinę. |
DRUGA | Zwraca sekundę jako liczbę (0-59) |
CZAS | Zwraca czas z godziny, minuty i sekundy. |
WARTOŚĆ CZASU | Konwertuje czas przechowywany jako tekst na poprawny czas. |
DZIEŃ POWSZEDNI | Zwraca dzień tygodnia jako liczbę (1-7). |
WEEKNUM | Zwraca numer tygodnia w roku (1-52). |
DZIEŃ ROBOCZY | Data n dni roboczych od daty. |
ROK | Zwraca rok. |
YEARFRAC | Zwraca ułamek roku między 2 datami. |
Inżynieria | |
KONWERTOWAĆ | Konwertuj liczbę z jednej jednostki na drugą. |
Budżetowy | |
FV | Oblicza przyszłą wartość. |
PV | Oblicza aktualną wartość. |
NPER | Oblicza łączną liczbę okresów płatności. |
PMT | Oblicza kwotę płatności. |
WSKAŹNIK | Oblicza stopę procentową. |
NPV | Oblicza bieżącą wartość netto. |
IRR | Wewnętrzna stopa zwrotu dla zestawu okresowych CF. |
XIRR | Wewnętrzna stopa zwrotu dla zestawu nieokresowych CF. |
CENA £ | Oblicza cenę obligacji. |
WEWNĘTRZNY | Oprocentowanie w pełni zainwestowanego papieru wartościowego. |
Informacja | |
ISERR | Sprawdź, czy wartość komórki jest błędem, ignoruje #N/A. PRAWDA FAŁSZ |
CZY.BŁĄD | Sprawdź, czy wartość komórki jest błędem. PRAWDA FAŁSZ |
ISEVEN | Sprawdź, czy wartość komórki jest parzysta. PRAWDA FAŁSZ |
IZLOGICZNY | Sprawdź, czy komórka jest logiczna (PRAWDA lub FAŁSZ). PRAWDA FAŁSZ |
ISNA | Sprawdź, czy wartość komórki to #N/A. PRAWDA FAŁSZ |
ISNONTEKST | Sprawdź, czy komórka nie jest tekstem (puste komórki nie są tekstem). PRAWDA FAŁSZ |
CZY.LICZBA | Sprawdź, czy komórka jest liczbą. PRAWDA FAŁSZ |
TO JEST DZIWNE | Sprawdź, czy wartość komórki jest nieparzysta. PRAWDA FAŁSZ |
CZYTEKST | Sprawdź, czy komórka jest tekstem. PRAWDA FAŁSZ |
RODZAJ | Zwraca typ wartości w komórce. |
Matematyka | |
ABS | Oblicza wartość bezwzględną liczby. |
AGREGAT | Zdefiniuj i wykonuj obliczenia dla bazy danych lub listy. |
SUFIT | Zaokrągla liczbę w górę do najbliższej określonej wielokrotności. |
SAŁATA | Zwraca cosinus kąta. |
STOPNIE | Konwertuje radiany na stopnie. |
DSUM | Sumuje rekordy bazy danych, które spełniają określone kryteria. |
PARZYSTY | Zaokrągla do najbliższej parzystej liczby całkowitej. |
do potęgi | Oblicza wartość wykładniczą dla podanej liczby. |
FAKT | Zwraca silnię. |
PIĘTRO | Zaokrągla liczbę w dół, do najbliższej określonej wielokrotności. |
GCD | Zwraca największy wspólny dzielnik. |
WEWN | Zaokrągla liczbę w dół do najbliższej liczby całkowitej. |
LCM | Zwraca najmniejszą wspólną wielokrotność. |
LN | Zwraca logarytm naturalny liczby. |
DZIENNIK | Zwraca logarytm liczby do określonej podstawy. |
LOG10 | Zwraca logarytm dziesiętny liczby. |
MROUND | Zaokrągla liczbę do określonej wielokrotności. |
DZIWNE | Zaokrągla do najbliższej nieparzystej liczby całkowitej. |
Liczba Pi | Wartość PI. |
MOC | Oblicza liczbę podniesioną do potęgi. |
PRODUKT | Mnoży tablicę liczb. |
ILORAZ | Zwraca całkowity wynik dzielenia. |
RADIANY | Konwertuje kąt na radiany. |
RANDBETWEEN | Oblicza liczbę losową między dwiema liczbami. |
OKRĄGŁY | Zaokrągla liczbę do określonej liczby cyfr. |
ZAOKRĄGLIĆ W DÓŁ | Zaokrągla liczbę w dół (w kierunku zera). |
PODSUMOWANIE | Zaokrągla liczbę w górę (od zera). |
GRZECH | Zwraca sinus kąta. |
SUMA CZĘŚCIOWA | Zwraca statystykę podsumowującą dla serii danych. |
SUMA | Dodaje liczby razem. |
SUMA | Sumuje liczby spełniające kryteria. |
SUMIKI | Sumuje liczby spełniające wiele kryteriów. |
SUMA PRODUKT | Mnoży tablice liczb i sumuje tablicę wynikową. |
DĘBNIK | Zwraca tangens kąta. |
Statystyki | |
PRZECIĘTNY | Uśrednia liczby. |
ŚREDNIA JEŻELI | Uśrednia liczby spełniające kryteria. |
ŚREDNIAIFS | Uśrednia liczby spełniające wiele kryteriów. |
WSPÓŁPRACA | Oblicza korelację dwóch szeregów. |
LICZYĆ | Zlicza komórki zawierające liczbę. |
LICZBA | Policz komórki, które nie są puste. |
LICZ.PUSTE | Zlicza komórki, które są puste. |
LICZ.JEŻELI | Zlicza komórki spełniające kryteria. |
LICZNIKI | Zlicza komórki spełniające wiele kryteriów. |
PROGNOZA | Przewiduj przyszłe wartości y na podstawie linii trendu liniowego. |
CZĘSTOTLIWOŚĆ | Zlicza wartości mieszczące się w określonych zakresach. |
WZROST | Oblicza wartości Y na podstawie wzrostu wykładniczego. |
PRZECHWYCIĆ | Oblicza punkt przecięcia Y dla linii najlepiej dopasowanej. |
DUŻY | Zwraca k-tą największą wartość. |
LINII | Zwraca statystyki dotyczące linii trendu. |
MAX | Zwraca największą liczbę. |
MEDIANA | Zwraca medianę. |
MIN | Zwraca najmniejszą liczbę. |
TRYB | Zwraca najczęściej spotykaną liczbę. |
PERCENTYL | Zwraca k-ty percentyl. |
PERCENTYL.INC | Zwraca k-ty percentyl. Gdzie k jest włącznie. |
PERCENTYL.EXC | Zwraca k-ty percentyl. Gdzie k jest wyłączne. |
KWARTYL | Zwraca określoną wartość kwartyla. |
KWARTYL.INC | Zwraca określoną wartość kwartyla. Włącznie. |
KWARTYL.EXC | Zwraca określoną wartość kwartyla. Ekskluzywny. |
RANGA | Pozycja liczby w serii. |
RANK.ŚREDNIA | Pozycja liczby w serii. Średnie. |
RANK.R. | Pozycja liczby w serii. Najwyższy ranking. |
NACHYLENIE | Oblicza nachylenie z regresji liniowej. |
MAŁY | Zwraca k-tą najmniejszą wartość. |
ODCH.STANDARDOWE | Oblicza odchylenie standardowe. |
ODCH.STANDARDOWE.P | Oblicza SD całej populacji. |
ODCH.STANDARDOWE | Oblicza SD próbki. |
ODCH.STANDARDOWE | Oblicza SD całej populacji |
TENDENCJA | Oblicza wartości Y na podstawie linii trendu. |
Tekst | |
CZYSTY | Usuwa wszystkie niedrukowalne znaki. |
DOLAR | Konwertuje liczbę na tekst w formacie waluty. |
ODNALEŹĆ | Lokalizuje pozycję tekstu w komórce.Rozróżniana jest wielkość liter. |
LEWO | Obcina tekst o kilka znaków od lewej. |
LEN | Zlicza liczbę znaków w tekście. |
ŚRODEK | Wyodrębnia tekst ze środka komórki. |
WŁAŚCIWY | Konwertuje tekst na poprawną wielkość liter. |
WYMIENIĆ | Zastępuje tekst na podstawie jego lokalizacji. |
POWT | Powtarza tekst kilka razy. |
PRAWIDŁOWY | Obcina tekst o kilka znaków od prawej. |
SZUKAJ | Lokalizuje pozycję tekstu w komórce. Nie uwzględnia wielkości liter. |
ZASTĄPIĆ | Znajduje i zamienia tekst. Wielkość liter ma znaczenie. |
TEKST | Konwertuje wartość na tekst o określonym formacie liczbowym. |
PRZYCINAĆ | Usuwa wszystkie dodatkowe spacje z tekstu. |