Excel VBA DatePart

Załóżmy, że mamy daty w naszych danych i nie wiemy, który to tydzień lub która część miesiąca. Można to znaleźć na różne sposoby. W programie Excel istnieją złożone formuły, które musimy wykonać, aby je znaleźć. Na przykład, jeśli istnieje data, 2 lutego 2015 r., Obliczenia dotyczące znalezienia kwartału dla tej daty w programie Excel są złożone. Jednak VBA zapewnia nam bardzo przydatną funkcję o nazwie DatePart, która wykonuje dla nas takie obliczenia.

Wyjaśniłem powyżej, dlaczego używamy funkcji DatePart w VBA. Ta funkcja służy do wyszukiwania części daty, czy to dnia, miesiąca, tygodnia, kwartału, a nawet godzin lub sekund. Ta funkcja zwraca liczbę całkowitą jako wynik. Aby zrozumieć więcej na temat tej funkcji, najpierw przejrzyjmy szczegółowo składnię tej funkcji.

Składnia DatePart w Excel VBA

Przyjrzyjmy się poniższej składni dla DatePart w Excel VBA.

Jak widać, do tej funkcji przekazano cztery argumenty. Pierwsze dwa argumenty są obowiązkowe, a pozostałe dwa argumenty są opcjonalne. Jeśli jednak nie podamy dwóch ostatnich argumentów, VBA ma dla niego własne wartości domyślne.

  • Interwał: ten argument jest dostarczany jako ciąg znaków dla tej funkcji. Argumentem tym może być miesiąc, tydzień, rok, dzień, a nawet godzina, minuty lub sekundy. Na przykład przez kwartał składnia będzie wynosić „q”, a przez rok składnia będzie „yyyy” i tak dalej.
  • Data: jest to data wejścia, którą udostępniamy tej funkcji, dla której części chcemy się dowiedzieć.
  • FirstDayofWeek: Jest to opcjonalny argument, który podajemy tej funkcji. Ale jeśli nie podamy funkcji pierwszego dnia tygodnia, VBA automatycznie traktuje NIEDZIELĘ jako pierwszy dzień tygodnia. Istnieją różne składnie dostarczania tego argumentu, które są następujące:

vbUseSystem (ta składnia używa USTAWIENIA API NLS), vbSunday (jest to domyślny argument), vbMonday, vbT wtorek, vbWed Wednesday, vbTh Czwartek, vbFriday, vbSaturday (Reszta wszystkie te argumenty są opcjonalne)

  • FirstWeekofYear: Jest to również opcjonalny argument dla tej funkcji. Ale znowu, jeśli nie podamy tego argumentu, VBA automatycznie rozważy pierwszy tydzień, niezależnie od tego, który tydzień będzie pierwszy od 1 stycznia. Również w tym argumencie istnieją różne składnie, są one następujące:

vbUseSystem, vbFirstJan1 (jest to ustawienie domyślne), vbFirstFourDays (ten argument zaczyna się od pierwszego tygodnia, który ma co najmniej pierwsze cztery dni w nowym roku), vbFirstFullWeek (ten argument zaczyna się od pierwszego pełnego tygodnia w roku).

Teraz dowiedzieliśmy się o funkcjach, a jego argumenty pozwalają przetestować tę funkcję w przykładach.

Jak korzystać z funkcji DatePart w Excelu VBA?

Poniżej znajdują się różne przykłady użycia funkcji DatePart w programie Excel przy użyciu kodu VBA.

Możesz pobrać ten szablon Excel VBA DatePart tutaj - Szablon Excel VBA DatePart

Excel VBA DatePart - Przykład nr 1

Weźmy od użytkownika dane wejściowe jako datę i część, którą użytkownik chce się dowiedzieć, a następnie użyjemy funkcji DatePart i wyświetlimy wynik.

Wykonaj poniższe czynności, aby użyć funkcji DatePart w Excel VBA:

Krok 1: Na karcie programisty w sekcji kodu kliknij Visual Basic, który przeniesie nas do edytora VB.

Krok 2: W Edytorze VB włóż nowy moduł do projektu VBA, jak pokazano poniżej.

Krok 3: Teraz kliknij dwukrotnie moduł i zacznij deklarować nową podprocedurę, jak pokazano poniżej.

Kod:

 Sub Sample () End Sub 

Krok 4: Zdefiniuj trzy zmienne, jedną jako Ciąg i datę, która będzie przechowywała datę i część naszych danych wejściowych, a druga jako liczbę całkowitą, która będzie przechowywać nasze dane wyjściowe.

Kod:

 Sub Próbka () Dim Dt As Date, Prt As String, Res As Integer End Sub 

Krok 5: W zmiennej daty zapytaj użytkownika o datę wprowadzenia.

Kod:

 Sub Próbka () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox („Enter a Date”) End Sub 

Krok 6: W części Prt, która jest częścią, weź dane wejściowe od użytkownika dotyczące części daty, którą musimy znaleźć.

Kod:

 Sub Próbka () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox („Enter a Date”) Prt = InputBox („Enter Date Part”) End Sub 

Krok 7: Teraz w Zmiennej rozdzielczości, która jest wynikiem, poznajmy wynik za pomocą funkcji DatePart w następujący sposób.

Kod:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox („Enter a Date”) Prt = InputBox („Enter Date Part”) Res = DatePart (Prt, Dt) End Sub 

Krok 8: Wyświetl wartość zapisaną w Res za pomocą funkcji msgbox.

Kod:

 Podpróbka () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox („Enter a Date”) Prt = InputBox („Enter Date Part”) Res = DatePart (Prt, Dt) MsgBox Res End Sub 

Krok 9: Teraz uruchommy powyższy kod, naciskając klawisz F5 lub klikając przycisk Odtwórz i podaj datę w następujący sposób.

Krok 10: Wprowadź wartość części daty.

Krok 11: Naciśnij OK, aby zobaczyć wynik, jak pokazano poniżej.

Otrzymujemy 1 jako datę, którą podaliśmy, ponieważ nakłady przypadają na pierwszy kwartał roku.

Excel VBA DatePart - Przykład nr 2

Tym razem podajmy datę bezpośrednio do funkcji w kodzie. Wykonaj poniższe czynności, aby użyć funkcji DatePart w Excel VBA:

Krok 1: W tym samym module zdefiniuj inną podprocedurę, jak pokazano poniżej.

Kod:

 Sub Sample1 () End Sub 

Krok 2: Zdefiniuj jedną zmienną jako liczbę całkowitą i jedną zmienną jako datę, jak pokazano poniżej.

Kod:

 Sub Próbka 1 () Dim Dt As Date, Res As Integer End Sub 

Krok 3: Podaj datę zmiennej.

Kod:

 Sub Próbka 1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # End Sub 

Krok 4: W zmiennej Res obliczmy tydzień daty za pomocą funkcji DatePart.

Kod:

 Sub Próbka 1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) End Sub 

Krok 5: Wyświetl wartość przechowywaną w zmiennej za pomocą funkcji msgbox.

Kod:

 Sub Próbka 1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Krok 6: Uruchom powyższy kod, naciskając klawisz F5 lub klikając przycisk Odtwórz, aby uzyskać następujący wynik.

Data, którą podaliśmy jako dane wejściowe, przypada w piątym tygodniu roku.

Excel VBA DatePart - Przykład nr 3

Wypróbujmy prawdziwy przykład. W arkuszu 1 w komórce A1 użyłem formuły = Teraz (), aby uzyskać bieżącą datę i godzinę, a my znajdziemy część daty dla tej komórki.

Wykonaj poniższe czynności, aby użyć funkcji DatePart w Excel VBA:

Krok 1: W tym samym module zdefiniuj inną podprocedurę w następujący sposób.

Kod:

 Sub Sample2 () End Sub 

Krok 2: Zdefiniuj dwie zmienne, jedną jako Data, a drugą jako liczbę całkowitą.

Kod:

 Sub Sample2 () Dim Dt As Date, Res As Integer End Sub 

Krok 3: W zmiennej Dt zapisz wartość komórki A1 w następujący sposób.

Kod:

 Sub Próbka 2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Wartość End Sub 

Krok 4: Teraz w zmiennej res obliczmy część tygodnia dla danych wejściowych za pomocą funkcji DatePart.

Kod:

 Sub Próbka 2 () Dim Dt As Date, Res As Integer Dt = Range („A1”). Wartość Res = DatePart („ww”, Dt) End Sub 

Krok 5: Wyświetl wartość przechowywaną w zmiennej za pomocą funkcji Msgbox.

Kod:

 Sub Próbka 2 () Dim Dt As Date, Res As Integer Dt = Range („A1”). Value Res = DatePart („ww”, Dt) MsgBox Res End Sub 

Krok 6: Uruchom powyższy kod, naciskając klawisz F5 lub klikając przycisk Odtwórz, aby uzyskać następujący wynik.

Obecna data to 25 lipca, czyli 30 tydzień 2019 roku.

Rzeczy do zapamiętania

  • Jest to funkcja daty, ale zwraca wartość całkowitą.
  • Pierwsze dwa argumenty są obowiązkowe, a pozostałe dwa argumenty są opcjonalne.
  • VBA ma własne domyślne argumenty, jeśli nie podamy dwóch ostatnich argumentów funkcji DatePart.
  • Ta funkcja jest funkcją VBA, a nie funkcją arkusza.

Polecane artykuły

Jest to przewodnik po VBA DatePart. Tutaj omawiamy, jak korzystać z funkcji DatePart w programie Excel za pomocą kodu VBA, a także kilka praktycznych przykładów i szablonu programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Data VBA Dodaj
  2. DZISIAJ Formuła w Excelu
  3. Funkcja daty VBA
  4. TERAZ funkcja Excel
  5. Jak korzystać z formatu daty VBA w programie Excel?
  6. Gdzie napisać kod w VBA?

Kategoria: