Funkcje daty i czasu w Excel VBA

1. Opis funkcji daty i czasu.

Funkcje daty VBA jak na nazwa wskazuje służą do manipulacji wartościami związanymi z datami i czasem. Na ich podstawie możemy otrzymać z podanej daty dowolny parametr jak dzień, miesiąc, rok itp. Możemy także odejmować od siebie dwie daty. Jeśli chcemy wprowadzić do naszego kodu VBA wartość daty, czasu, bądź wartość daty i czasu jednocześnie, możemy skorzystać z następującego kodu:

Sub DateTimeInsertExample()

Dim datVal As Date
Dim datTimeVal As Date
Dim datDatTimeVal As Date

datVal = "2016/09/01"
datTimeVal = "23:41:59"
datDatTimeVal = "2016/09/01 23:41:59"

MsgBox (datVal)
MsgBox (datTimeVal)
MsgBox (datDatTimeVal)

End Sub

2. Wykaz funkcji daty i czasu w VBA

Funkcje daty VBA zamieszczam w tabelce. W pierwszej kolejności poznamy funkcje wskazującą bieżącą datę. Całość poniżej:

FUNKCJAOPIS
DATE()Zwraca bieżącą datę, wg. daty systemu. Funkcję możemy porównać do formuły DZIŚ() z Excela
DATEADD(interval, number, date)Dodaje do podanej określoną liczbę jednostek dat i czasu zgodnie z argumentem interval. Wstawiając znak ujemny przed numerem możemy pomniejszyć wprowadzoną datę. Liczbę jednostek, o którą chcemy zmienić naszą datę podajemy w parametrze number.
DATEDIFF(interval, date_1, date_2)Zwraca różnicę dwóch dat i podaje wynik w formie liczby.
DATEPART(interval, date)Zwraca wartość części daty lub czasu(rok,dzień, godzina itp.) w zależności od podanego parametru interval.
DATESERIAL(year, month, day) Zwraca datę zgodnie z argumentami YMD.
DATEVALUE(string) Zwraca datę z wartości tekstowej
DAY(date)Zwraca dzień miesiąca z podanej daty w formie liczby 0-31
HOUR(date)Zwraca godzinę w formie liczby 0-24
MINUTE(date)Zwraca liczbę minut z podanej daty w formie liczby 0-59
MONTH(date)Zwraca miesiąc z podanej daty w formie liczby 1-12
MONTHNAME(date, [abbreviate])Zwraca nazwę dnia miesiąca z podanej daty. Funkcja posiada drugi argument. Wartość True poda nazwę miesiąca w formie skróconej.
NOW()Zwraca bieżącą datę i czas
TIMESERIAL( hour, minute, second )Zwraca wartość czasu, zgodnie z podanymi parametrami HMS.
TIMEVALUE(String)Zwraca czas z wartości tekstowej
WEEKDAY(date)Zwraca dzień tygodnia z podanej daty
WEEKDAYNAME(number, [abbreviate], [firstdayofweek])Zwraca nazwę słowną dnia tygodnia w zależności od podanego numeru dnia tygodnia. Opcjonalny parametr abbreviate z wartością True poda nazwę miesiąca w formie skróconej. Parametr firstdayofweek ustawiony na 2 oznacza, że pierwszym dniem tygodnia jest poniedziałek.
YEAR(date)Zwraca rok z podanej daty z zakresu 1900-9999

Jak widzisz, część naszych funkcji wykorzystuje jako argumenty interwały czasowe. Są to Interwały dla funkcji DATADD(), DATEDIFF(), DATEPART(). Poniżej tabelka przedstawiająca każdy z interwałów. To właśnie te wartości wpisujemy jako argument funkcji.

InterwałZnaczenie
yyyyRok
qKwartał
mMiesiąc
yDzień roku
dDzień
wDzień tygodnia
wwTydzień
hGodzina
nMinuta
sSekunda

2. Przykład z wykorzystaniem funkcji dat i czasu.

Poniżej krótki przykład. Chcemy sprawdzić, jak działają poznane przed chwilą funkcje. Stwórz program w nowym module. Wprowadźmy do kodu 3 zmienne VBA z wartościami daty, czasu oraz daty i czasu jednocześnie.

Sub DateFunctionsExample()

Dim datVal As Date
Dim datTimeVal As Date
Dim datDatTimeVal As Date

datVal = "2016/09/01"
datTimeVal = "23:41:59"
datDatTimeVal = "2016/09/01 23:41:59"

MsgBox (datVal)
MsgBox (datTimeVal)
MsgBox (datDatTimeVal)
Range("A1") = Date
Range("A2") = DateAdd("m", -2, datVal)
Range("A3") = DateDiff("d", Date, datVal)
Range("A4") = DatePart("yyyy", datVal)
Range("A5") = DateSerial(2015, 1, 1)
Range("A6") = DateValue(datVal)
Range("A7") = Day(datVal)
Range("A8") = Hour(Now())
Range("A9") = Minute(Now())
Range("A10") = Month(datVal)
Range("A11") = MonthName(9, True)
Range("A12") = Now()
Range("A13") = TimeSerial(13, 23, 59)
Range("A14") = TimeValue("13:23:59")
Range("A15") = Weekday(Date)
Range("A16") = WeekdayName(3, True, 2)
Range("A17") = Year(Date)

End Sub
Kurs Excel VBA - Funkcje daty VBA
Kurs Excel VBA – Funkcje daty VBA

Plik Excela z naszym przykładem zamieszczam poniżej:

kurs_excel_vba_funkcje_daty

3. Zadania (Rozwiązanie możesz wpisać w komentarzu)

3.1 Oblicz na podstawie daty z dnia dzisiejszego dzień, miesiąc, rok, kwartał.

3.2 Na podstawie bieżącej godziny wstaw do komórek arkusza godzinę, minuty i sekundy

3.3 Sprawdź ile dni zostało do końca roku.

3.4 Sprawdź dzień tygodnia dla daty swoich urodzin.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

9 komentarzy “Funkcje daty i czasu w Excel VBA”