Hàm DatePart VBA - Làm thế nào để trả lại một phần được chỉ định trong ngày?

Hàm DatePart trong Excel VBA

DatePart trong VBA được sử dụng để xác định một phần của ngày cho ngày đã cho được cung cấp dưới dạng đối số, phần ngày có thể là ngày hoặc tháng hoặc năm hoặc thậm chí là giờ phút và giây, cú pháp của hàm này rất rõ ràng và nó như sau, Datepart (Khoảng thời gian, Ngày dưới dạng Đối số).

Cú pháp

Cú pháp của hàm DatePart như sau:

  • Khoảng thời gian: Dữ liệu được truyền trong một đối số khoảng thời gian là một kiểu chuỗi, có nghĩa là đối số này có thể chứa bất kỳ giá trị hợp lệ nào trong đó. Khoảng thời gian có thể là năm, tháng, quý, ngày, tuần, giờ, phút, giây.
  • Ngày: Giá trị ngày cần được đánh giá.
  • firstdayofweek: Đây là một tham số tùy chọn. Điều này mô tả ngày đầu tiên của tuần. Điều này thậm chí có thể được bỏ qua. Nếu thông số này bị bỏ qua, điều này sẽ tự động lấy Chủ nhật là ngày đầu tiên trong tuần. Nếu bạn muốn thay đổi điều đó, thì tham số này có thể được sử dụng. Đối số này có thể bao gồm vbUseSystem 0.

Sử dụng cài đặt API NLS

vbSunday (Mặc định), vbMonday, vbTuesday, vbWednesday, vbThursday vbFriday, vbSaturday.
  • firstweekofyear: Tương tự như vậy, tham số hàng đầu, đây cũng là một tham số tùy chọn. Điều này mô tả tuần đầu tiên của năm. Tham số này cũng có thể được bỏ qua. Nếu thông số này bị bỏ qua, nó sẽ giả định rằng ngày 1 tháng 1 là tuần đầu tiên của năm. Nếu bạn muốn thay đổi điều đó, thì tham số này có thể được sử dụng.
    Đối số này có thể bao gồm các giá trị sau.
    vbUseSystem, vbFirstJan1, vbFirstFourDays, vbFirstFullWeek.

Sau khi cung cấp tất cả các tham số, datepart () sẽ trả về giá trị số chẳng hạn như toàn bộ ngày hoặc năm hoặc tháng hoặc quý, v.v. Do đó, kiểu trả về của hàm này sẽ là giá trị số.

Cách sử dụng Hàm DatePart trong VBA?

Ví dụ 1

Ví dụ đầu tiên là hiển thị ngày đầy đủ và cả quý của tháng đó.

Để đạt được điều này, chúng ta cần viết một số mã trong Visual Basic cho Tab nhà phát triển Goto đó và sau đó nhấp vào Visual Basic, và sau đó một cửa sổ sẽ mở ra.

Trong cửa sổ đó, viết mã như hình dưới đây.

Mã:

Sub date_Datepart () Dim mydate As Variant mydate = # 12/25/2019 # MsgBox mydate MsgBox DatePart ("q", mydate) 'hiển thị quý End Sub

Trong ví dụ này, chúng tôi đã sử dụng hàm datepart để hiển thị ngày và một số phần của ngày đó là một phần tư ngày. Điều này hiển thị quý nào trong năm là ngày sắp đến.

Nếu chúng tôi gỡ lỗi mã, ngày sẽ được hiển thị dưới dạng ngày hoàn chỉnh lần đầu tiên khi mã thực thi “Msgbox mydate” vì ngày ngẫu nhiên được gán cho biến “mydate”.

Tiếp theo, chúng tôi sẽ hiển thị ngày đó thuộc quý nào trong năm.

Khi bạn chạy mã theo cách thủ công hoặc sử dụng phím tắt F5, thì ngày sẽ được hiển thị như hình sau khi nhấp vào ok. Tiếp theo, phần tư của ngày sẽ được hiển thị. Điều này có thể được hiển thị trong ảnh chụp màn hình bên dưới.

Tương tự như vậy, Quý, chỉ ngày hoặc tháng hoặc năm cũng có thể được hiển thị.

Ví dụ số 2

Trong ví dụ này, tôi sẽ nhập ngày theo cách thủ công vào thời gian chạy.

Mã:

Sub date1_datePart () Dim TodayDate As Date 'Khai báo các biến. Dim Msg TodayDate = InputBox ("Nhập ngày:") Msg = "Quý:" & DatePart ("q", TodayDate) MsgBox Msg End Sub

Ở đây trong ví dụ này, chúng tôi đang cố gắng lấy ngày theo cách thủ công tại thời gian chạy. Mã “TodayDate = InputBox (“ Nhập ngày: ”)” dòng này cho biết ngày có thể được nhập thủ công,

Sau khi nhập ngày theo cách thủ công, nó sẽ hiển thị Quý của Ngày trong Hộp thông báo. Điều này có thể được hiển thị trong ảnh chụp màn hình bên dưới.

Vì tháng 6 nằm trong quý 2, điều này sẽ hiển thị Quý 2 , như được hiển thị trong ảnh chụp màn hình ở trên.

Ví dụ # 3

Trong ví dụ này, tất cả các giá trị sẽ được điền vào các ô.

Mã:

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.
  • Hàm này cũng phân tách ngày, tháng và năm khỏi một ngày cụ thể.
  • Bằng cách sử dụng chức năng này, ngày không chỉ được tách biệt. Chúng ta cũng có thể lấy quý, ngày, giờ, phút và giây.

Những điều cần ghi nhớ

  • Hàm này chỉ có thể được sử dụng như một Hàm VBA. Trong excel thông thường, điều này không thể được sử dụng.
  • Ngày tháng được cung cấp dưới dạng giá trị trong hàm này có thể được cung cấp ở bất kỳ định dạng nào như định dạng mm-dd-yyyy hoặc định dạng DD-MM-YYYY, v.v.
  • Chức năng này sẽ tách tất cả các giá trị một cách riêng biệt, chẳng hạn như ngày, tháng, năm hoặc thời gian cũng là giờ, phút, giây cũng được.
  • Điều này được sắp xếp theo Hàm ngày và giờ trong VBA của Microsoft Excel.

thú vị bài viết...