VBA IsDate | Cách sử dụng Hàm IsDate trong Excel VBA?

Hàm IsDate trong Excel VBA

IsDate là hàm VBA kiểm tra xem giá trị đã cho có phải là ngày hay không. Nếu giá trị được cung cấp hoặc giá trị tham chiếu phạm vi là giá trị ngày thì chúng ta sẽ nhận được kết quả là “TRUE”, nếu giá trị không phải là giá trị ngày thì chúng ta sẽ nhận được kết quả là “FALSE”. Vì vậy, kết quả là giá trị BOOLEAN tức là TRUE hoặc FALSE.

Dưới đây là cú pháp của hàm IsDate.

Biểu thức không là gì khác ngoài giá trị mà chúng tôi đang cố gắng kiểm tra xem nó có phải là ngày tháng hay không.

Làm thế nào để sử dụng VBA IsDate Function?

Bạn có thể tải mẫu VBA IsDate Excel này tại đây - Mẫu VBA IsDate Excel

Chúng tôi sẽ kiểm tra xem giá trị “5.01.19” có phải là giá trị ngày tháng hay không.

Đối với điều này, đầu tiên hãy bắt đầu thủ tục macro excel.

Mã:

 Sub IsDate_Example1 () End Sub 

Xác định biến để lưu trữ giá trị ngày tháng và vì giá trị sẽ là giá trị ngày tháng nên chỉ định kiểu dữ liệu là “Ngày tháng”.

Mã:

 Sub IsDate_Example1 () Dim MyDate As Date End Sub 

Bây giờ gán giá trị của “5.1.19” cho biến “MyDate”.

Mã:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" End Sub 

Mở hộp thư trong VBA ngay bây giờ

Mã:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox (End Sub 

Trong hộp thông báo này, chúng tôi sẽ kiểm tra xem giá trị ngày được cung cấp cho biến “MyDate” có phải là ngày hay không bằng cách sử dụng hàm “IsDate”. Đầu tiên, mở chức năng "IsDate".

Mã:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox IsDate (End Sub 

Biểu thức là giá trị mà chúng tôi đang kiểm tra để tìm xem nó có phải là Ngày hay không. Vì chúng tôi đã lưu trữ giá trị cho biến “MyDate” nên chỉ cung cấp tên biến.

Mã:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox IsDate (MyDate) End Sub 

Ok, bây giờ hãy chạy mã và xem những gì chúng ta nhận được trong hộp tin nhắn.

Chà !!! Kết quả là TRUE .

Bạn phải tự hỏi làm thế nào nó nhận ra giá trị “5.1.19” là ngày.

Lý do tại sao nó trả về kết quả là TRUE vì khi bạn nhìn vào giá trị đã cho “5.1.19”, nó là dạng ngắn của ngày “05.01.2019” nên excel đủ sáng để nhận ra nó là ngày, vì vậy kết quả là đúng.

Bây giờ, điều khó khăn ở đây là, vì cùng một giá trị những gì chúng tôi sẽ làm là chúng tôi sẽ thay đổi hình thức ngắn của năm từ 19 sang 2019.

Mã:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "5.1.2019" MsgBox IsDate (MyDate) End Sub 

Bây giờ hãy chạy mã và xem kết quả.

Lần này nó đã trả về kết quả là FALSE vì phần "ngày và tháng" của ngày ở dạng ngắn nhưng phần năm ở dạng đầy đủ là "YYYY" nên ISDATE không thể nhận ra nó có ngày nên kết quả là FALSE.

Bây giờ, hãy xem đoạn mã dưới đây.

Mã:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05.01.2019" MsgBox IsDate (MyDate) End Sub 

Tôi đã đề cập đến định dạng ngày và tháng đầy đủ bằng cách sử dụng 0, hãy chạy mã và xem kết quả của hàm IsDate.

Lần này chúng tôi cũng nhận được kết quả là FALSE .

Bây giờ thay đổi mã như sau.

Mã:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019" MsgBox IsDate (MyDate) End Sub 

Thay vì dấu chấm (.) Làm dấu phân tách, chúng tôi đã nhập dấu gạch chéo lên (/) làm dấu phân tách. Bây giờ hãy chạy mã và xem kết quả.

Lần này chúng tôi nhận được kết quả là TRUE .

Đây là lý do tôi đã nói với bạn ở đầu bài viết rằng “Ngày” là một điều nhạy cảm.

Bây giờ những gì tôi sẽ làm là tôi sẽ hợp nhất ngày và giờ với nhau.

Mã:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019 15:26:24" MsgBox IsDate (MyDate) End Sub 

Những gì tôi đã thêm ở trên là phần thời gian “15:26:24” trước ngày. Bây giờ hãy chạy mã và xem kết quả.

Lần này chúng tôi cũng nhận được kết quả là TRUE vì NGÀY & GIỜ trong excel là những thứ giống nhau và được lưu trữ dưới dạng số sê-ri. Toàn bộ số đại diện cho phần ngày và các vị trí thập phân đại diện cho phần thời gian.

Những điều cần nhớ ở đây

  • IsDate trả về kết quả kiểu Boolean tức là TRUE hoặc FALSE.
  • IsDate chỉ khả dụng dưới dạng một hàm VBA.
  • Chỉ những ngày được định dạng hợp lệ mới được coi là ngày tháng, nếu không nó sẽ được coi là giá trị văn bản và trả về kết quả là FALSE.

$config[zx-auto] not found$config[zx-overlay] not found