Funkcja VBA DatePart - Jak zwrócić określoną część daty?

Funkcja Excel VBA DatePart

DatePart w VBA służy do identyfikacji części daty dla danej daty podanej jako argument, część daty może być dniami, miesiącami lub rokiem, a nawet godziną, minutami i sekundami, składnia tej funkcji bardzo się wyjaśnia i wygląda to następująco, Datepart (Interval, Date as Argument).

Składnia

Poniżej podano składnię funkcji DatePart:

  • Interwał: dane, które mają być przekazane w argumencie interwału, są typu łańcuchowego, co oznacza, że ​​argument ten może zawierać dowolne prawidłowe wartości. Przedział może obejmować rok, miesiąc, kwartał, dzień, tydzień, godzinę, minutę, sekundę.
  • Data: wartość daty, która ma zostać oszacowana.
  • firstdayofweek: to jest parametr opcjonalny. Opisuje pierwszy dzień tygodnia. Można to nawet zignorować. Jeśli ten parametr zostanie zignorowany, niedziela automatycznie będzie pierwszym dniem tygodnia. Jeśli chcesz to zmienić, możesz użyć tego parametru. Ten argument może składać się z vbUseSystem 0.

Użyj ustawienia NLS API

vbSunday (domyślnie), vbMonday, vbTuesday, vbWed Wednesday, vbTh Thursday vbFriday, vbSaturday.
  • firstweekofyear: Podobnie, najwyższy parametr, jest to również parametr opcjonalny. Opisuje pierwszy tydzień roku. Ten parametr można również zignorować. Jeśli ten parametr jest ignorowany, przyjmuje się, że 1 stycznia jest pierwszym tygodniem roku. Jeśli chcesz to zmienić, możesz użyć tego parametru.
    Ten argument może składać się z następujących wartości.
    vbUseSystem, vbFirstJan1, vbFirstFourDays, vbFirstFullWeek.

Po podaniu wszystkich parametrów, datepart () zwróci wartość liczbową, taką jak cała data, rok, miesiąc lub kwartał, itd. Stąd typem zwracanym przez tę funkcję będzie wartość liczbowa.

Jak korzystać z funkcji DatePart w VBA?

Przykład 1

Pierwszym przykładem jest wyświetlenie pełnej daty i kwartału tego miesiąca.

Aby to osiągnąć, musimy napisać kod w Visual Basic dla tej zakładki Goto Developer, a następnie kliknąć Visual Basic, a wtedy otworzy się okno.

W tym oknie napisz kod, jak pokazano poniżej.

Kod:

Sub date_Datepart () Dim mydate As Variant mydate = # 12/25/2019 # MsgBox mydate MsgBox DatePart ("q", mydate) 'wyświetla koniec kwartału Sub

W tym przykładzie użyliśmy funkcji datepart, aby wyświetlić datę i część daty, która jest jedną czwartą daty. Wyświetla nadchodzący kwartał roku.

Jeśli debugujemy kod, data zostanie wyświetlona jako pełna data po raz pierwszy, gdy kod wykona „Msgbox mydate”, ponieważ losowa data jest przypisana do zmiennej „mydate”.

Następnie wyświetlamy kwartał roku, dla którego przypada ta data.

Po uruchomieniu kodu ręcznie lub za pomocą klawisza skrótu F5 data zostanie wyświetlona tak, jak pokazano po kliknięciu ok. Następnie zostanie wyświetlony kwartał z datą. Można to zobaczyć na poniższym zrzucie ekranu.

Podobnie, kwartał, można również wyświetlić tylko datę, miesiąc lub rok.

Przykład nr 2

W tym przykładzie wprowadzę datę ręcznie w czasie wykonywania.

Kod:

Sub date1_datePart () Dim TodayDate As Date 'Deklaruj zmienne. Dim Msg TodayDate = InputBox ("Wprowadź datę:") Msg = "Kwartał:" & DatePart ("q", TodayDate) MsgBox Msg End Sub

W tym przykładzie próbujemy ręcznie pobrać datę w czasie wykonywania. Kod „TodayDate = InputBox („ Enter a date: ”)” w tym wierszu wskazuje, że datę można wprowadzić ręcznie,

After entering the date manually, it displays the Quarter of the Date in a message Box. This can be shown in the below screenshot.

As the June month is in the 2nd quarter, this displays the 2nd Quarter, as shown in the above screenshot.

Example #3

In this example, all the values will be filled up in the cells.

Code:

Private Sub Workbook_Open() Dim DummyDate As Date DummyDate = ActiveSheet.Cells(2, 2) ActiveSheet.Cells(2, 2).Value = Day(DummyDate) ActiveSheet.Cells(3, 2).Value = Hour(DummyDate) ActiveSheet.Cells(4, 2).Value = Minute(DummyDate) ActiveSheet.Cells(5, 2).Value = Month(DummyDate) ActiveSheet.Cells(6, 2).Value = Weekday(DummyDate) End Sub

The dates are filled in the cells in the excel sheet, for that the code is written as Active Sheet.cells. By this code, the date which is present maybe a year, month, or date can be inserted into the given cells.

For example, in the above screenshot,

The day is to be inserted in the cells ( 2, 2) of the excel sheet. Hence the code is written as “ ActiveSheet.Cells(2, 2).Value = Day(DummyDate) “ .

Run the code using the F5 key or manually, and the result would be as shown below.

It is, by default taking date today, and it is displaying as 30 in (2,6) cell.

Likewise, for all the other data also it can be filled.

Usage of DatePart Function

  • DatePart function can be used to display the part of the date as the name indicates, i.e., if only day or month or year of the date needs to be displayed, then this function can be used.
  • Ta funkcja oddziela również datę, miesiąc i rok od określonej daty.
  • Dzięki tej funkcji data jest nie tylko rozdzielana. Możemy również uzyskać kwartał, dzień, godzinę, minutę i sekundę.

Rzeczy do zapamiętania

  • Ta funkcja może być używana tylko jako funkcja VBA. W normalnym programie Excel nie można tego użyć.
  • Daty, które są podawane jako wartość w tej funkcji, można podać w dowolnym formacie, takim jak format mm-dd-rrrr lub format DD-MM-RRRR itp.
  • Ta funkcja oddzieli wszystkie wartości osobno, takie jak data, miesiąc, rok lub czas, a także godzinę, minutę, sekundy.
  • Jest to zorganizowane w sekcji Funkcje daty i czasu w języku VBA programu Microsoft Excel.

Interesujące artykuły...