Ostatnio zaktualizowano: 30 października, 2017 przez admin
1. Funkcja DatePart VBA – Opis
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.
2. Funkcja VBA DatePart – Składnia
'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.
3. Funkcja VBA DatePart – Przykład
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
4. Funkcja VB DatePart – Dodatkowe informacje
- Jeśli chcemy, by podczas liczenia pierwszym dniem tygodnia był poniedziałek, w czwartym argumencie funkcji wpiszmy liczbę 2 lub vbMonday.
- Jeśli chcemy by pierwszym tygodniem roku był pierwszy pełny tydzień, w piątym argumencie funkcji wpiszmy liczbę 3.
- By wartość daty i czasu była prawidłowo widoczna dla VB, wartości wprowadzamy w cudzysłowie lub pomiędzy znakami hash ##.
- Liczby reprezentujące miesiąc, dzień, rok, godzinę, minutę możemy uzyskać także stosując takie funkcje VBA jak: Day, Month, Year, Hour, Minute itp.
5. Funkcja DatePart VisualBasic – Gdzie stosować?
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.