Funkcja DatePart VBA zwraca poszczególne części daty i czasu w zależności od wprowadzonych argumentów. Za jej pomocą możemy wyciągnąć takie elementy jak kwartał, dzień roku, tydzień roku, a także standardowe elementy daty jak dzień, miesiąc, rok, godzina, minuta, sekunda. Warto zaznaczyć, że te elementy możemy wyciągnąć także za pomocą innych funkcji daty.
'datatalk.pl DatePart(Interval As String, Date, [FirstDayOfWeek As VbDayOfWeek = vbSunday], [FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1])
Interval: Sprecyzowanie jednostki czasu, w których chcemy uzyskać wynik. Nazwy jednostek wprowadzamy w cudzysłowie, np „YYYY”, jeśli chcemy uzyskać lata.
| Jednostka | Interval |
| Dzień | d |
| Dzień roku | y |
| Godzina | h |
| Minuta | n |
| Miesiąc | m |
| Kwartał | q |
| Sekunda | s |
| Dzień tygodnia | w |
| Tydzień roku | ww |
| Rok | yyyy |
Date: Data lub czas, na którym chcemy użyć funkcji DatePart VB.
FirstDayOfWeek: Określenie pierwszego dnia tygodnia. W tym argumencie wprowadzamy stałą lub jej numer. Poniżej tabela przedstawiająca to, co powinniśmy wprowadzać w tym argumencie. Argument nie jest obowiązkowy.
| Stała | Numer stałej | Opis |
| vbUseSystem | 0 | Zgodnie z ustawieniami systemu / API |
| vbSunday | 1 | Niedziela (default) |
| vbMonday | 2 | Poniedziałek (ISO 8601) |
| vbTuesday | 3 | Wtorek |
| vbWednesday | 4 | Środa |
| vbThursday | 5 | Czwartek |
| vbFriday | 6 | Piątek |
| vbSaturday | 7 | Sobota |
FirstWeekOfYear – Określenie pierwszego tygodnia roku w zależności o parametrów funkcji. W tym argumencie wprowadzamy stałą lub jej numer. Poniżej tabela przedstawiająca to, co powinniśmy wprowadzać w tym argumencie. Argument nie jest obowiązkowy.
| Stała | Numer stałej | Opis |
| vbUseSystem | 0 | Zgodnie z ustawieniami systemu / API |
| vbFirstJan1 | 1 | Tydzień, w którym wypada 1 stycznia |
| vbFirstFourDays | 2 | Pierwszy tydzień roku posiadający co najmniej 4 dni (ISO 8601) |
| vbFirstFullWeek | 3 | Pierwszy pełny tydzień w roku |
Zwrot funkcji: Number / Wartość liczbowa określająca liczbę jednostek czasu.
Jak używać funkcji DatePart w VBA Excel? Poniżej przykład użycia funkcji DatePart w Edytorze VisualBasic.
Przykład 1: Jak uzyskać dzień z daty VBA.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("d", datValue1, vbMonday)
Range("A1") = DatePart("d", datValue1, 2)
Przykład 2: VBA jak wyciągnąć numer tygodnia z daty.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("ww", datValue1, 2, vbFirstFourDays)
MsgBox DatePart("ww", datValue1, 2, vbUseSystem)
Range("A2") = DatePart("ww", datValue1, 2, vbFirstFourDays)
Range("A3") = DatePart("ww", datValue1, 2, vbUseSystem)
Przykład 3: VisualBasic Jak wyciągnąć miesiąc z daty.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("m", datValue1)
Range("A4") = DatePart("m", datValue1)
Przykład 4: VBA Jak wyciągnąć kwartał z daty.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("q", datValue1)
Range("A5") = DatePart("q", datValue1)
Przykład 5: Jak uzyskać rok z daty VBA.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("yyyy", datValue1)
Range("A6") = DatePart("yyyy", datValue1)
Przykład 6: Jak obliczyć numer dnia roku z daty VBA.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("y", datValue1, , vbUseSystem)
MsgBox DatePart("y", datValue1, , vbFirstFourDays)
Range("A7") = DatePart("y", datValue1, , vbUseSystem)
Range("A8") = DatePart("y", datValue1, , vbFirstFourDays)
Przykład 7: VBA Numer dnia tygodnia.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("w", datValue1, 2)
Range("A9") = DatePart("w", datValue1, vbMonday)
Przykład 8: VBA – obliczanie godziny z daty i czasu.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("h", datValue1)
Range("A10") = DatePart("h", datValue1)
Przykład 9: VBA – wyciąganie liczby minut z daty i czasu.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("n", datValue1)
Range("A11") = DatePart("n", datValue1)
Przykład 10: VBA – wyciąganie liczby sekund z daty i czasu.
'datatalk.pl
Dim datValue1 As Date
datValue1 = #11/20/2018 8:22:59 AM#
MsgBox DatePart("s", datValue1)
Range("A12") = DatePart("s", datValue1)
Plik z przykładami: funkcje_vba_excel_datepart.xlsm
Funkcję możemy stosować w: Excel 2003, Excel 2007, Excel 2010, Excel 2013, Excel 2016.
Artykuł jest częścią listy funkcji VBA Excel. Listę wszystkich funkcji VBA znajdziesz pod tym adresem: Funkcje VBA.
W jaki sposób w Excel zmienić datę na pierwszy lub ostatni dzień miesiąca? W tym…
Średnia ważona w Excel - Jak ją obliczyć W tym przykładzie dowiesz się jak obliczyć…
Data i godzina w Excel - Jak ją szybko wstawić Jest wiele sposobów na wstawienie…
Dni robocze w Excel - Jak je obliczyć? Jeśli chcesz obliczyć dni robocze w Excel…
Kurs Excel - poziom podstawowy Kurs Excel od podstaw jest już opublikowany. Możesz z niego…
Jak w Excel zrobić pierwiastek inny niż drugiego stopnia Jeśli chcesz w Excel obliczyć pierwiastek…