Chuỗi VBA cho đến nay - Chuyển đổi giá trị chuỗi thành ngày tháng trong Excel VBA

Chuỗi VBA Excel đến ngày

Trong Vba có một phương thức mà qua đó chúng ta có thể chuyển đổi một chuỗi cụ thể thành một ngày tháng và phương thức này được gọi là hàm CDATE trong vba, đây là một hàm có sẵn trong VBA và các phần cần thiết cho hàm này là trước tiên phải chuyển đổi chuỗi thành một số và sau đó chúng tôi chuyển đổi số đã cho thành một ngày. Định dạng kết quả chỉ phụ thuộc vào định dạng ngày hệ thống.

Một trong những vấn đề chung mà tất cả chúng ta phải đối mặt với excel là “Ngày & Giờ” và thường được lưu trữ dưới dạng giá trị văn bản và ban đầu không được chú ý. Nhưng khi chúng được yêu cầu sử dụng khoảng thời gian đó, chúng ta sẽ biết rằng những giá trị đó được lưu trữ dưới dạng văn bản và hoàn toàn không biết cách xử lý chúng. “Ngày & Giờ” là hai thứ được kết hợp trong một phần tử, nhưng một khi các giá trị đó được lưu trữ dưới dạng giá trị văn bản, thì sẽ rất khó để làm việc với.

Làm thế nào để chuyển đổi giá trị chuỗi thành ngày?

Ví dụ 1

Khi biến VBA được khai báo và gán dưới dạng Chuỗi, bất kỳ thứ gì được gán cho biến đó sẽ chỉ được coi là chuỗi. Ví dụ, hãy xem đoạn mã dưới đây.

Mã:

Sub String_To_Date () Dim k As String k = "10-21" MsgBox k End Sub

Trong đoạn mã trên, biến “k” được định nghĩa là kiểu dữ liệu “Chuỗi” và đối với biến này, chúng tôi đã gán giá trị là “10-21”.

Ok, hãy chạy mã và xem những gì chúng ta nhận được trong hộp thông báo trong VBA.

Chúng tôi chỉ nhận giá trị là 10-21, nhưng thông thường, các giá trị này là ngày tháng, không phải giá trị chuỗi. Vì vậy, mặc dù kiểu dữ liệu được gán là “Chuỗi”, chúng ta vẫn có thể chuyển đổi sang ngày tháng bằng cách sử dụng hàm chuyển đổi kiểu dữ liệu CDATE VBA.

Mã:

Sub String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) End Sub

Ở trên, trước khi hiển thị kết quả của biến “k” trong hộp thông báo, chúng ta đã gán hàm CDATE. Một điều chỉnh nhỏ được thực hiện, hãy xem nó tạo ra tác động lớn như thế nào.

Bây giờ chúng ta sẽ thấy kết quả là “Ngày” không còn là giá trị “Chuỗi”.

Ví dụ số 2

Bây giờ, hãy xem đoạn mã dưới đây để làm ví dụ.

Mã:

Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub

Tại thời điểm này, mã trên sẽ hiển thị kết quả là “43599” như chúng tôi đã chỉ định ở trên.

Nhưng khi chúng ta sử dụng hàm CDATE, nó sẽ chuyển đổi thành giá trị ngày tháng.

Mã:

Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub

Kết quả sau khi áp dụng hàm CDATE như sau.

Vì excel lưu trữ ngày tháng dưới dạng số sê-ri, số sê-ri 43599 được chỉ định của chúng tôi bằng với ngày 14/05/2019 khi định dạng ngày được áp dụng.

Chúng tôi cũng có thể áp dụng định dạng cho ngày là “DD-MMM-YYYY” để đọc chính xác ngày.

Mã:

Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) MsgBox Format (DateValue, "DD-MMM-YYYY") End Sub

Ở trên, tôi đã khai báo thêm một biến để lưu trữ kết quả. Đối với biến này, tôi đã áp dụng hàm chuyển đổi CDATE.

Tiếp theo, tôi đã sử dụng hàm FORMAT để áp dụng định dạng của định dạng “DD-MMM-YYYY” và kết quả sẽ như hình dưới đây.

With this, we can clearly read the daypart and month part. It also depends on your system date format in excel. Since my system date format was “MM-DD-YYYY,” it was showing like that, but that should not be a hindrance to format.

Example #3

Now we will see actually how dates are formatted as text values in worksheet cells. Below is the image of the dates stored as text in a worksheet.

In column A from A2 to A12, we have date looking values, but when we look at the format tab, it shows “Text” format. Now we need to convert these values from text to date.

Below is the code I have written to convert the text-formatted date values to actual dates.

Code:

Sub String_To_Date2 () Dim k As Long 'Dữ liệu nằm trong nhiều ô, vì vậy cần lặp qua từng ô' Open For Loop For k = 2 To 12 'Dữ liệu bắt đầu từ hàng thứ 2 và kết thúc ở hàng thứ 12, vì vậy 2 đến 12 Ô (k, 2) .Value = CDate (Cells (k, 1) .Value) Tiếp theo k End Sub

Nếu bạn chạy mã, nó sẽ cho chúng ta kết quả bên dưới.

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

  • CDATE là một hàm chuyển đổi kiểu dữ liệu nhưng có thể được sử dụng để chuyển đổi ngày được lưu trữ trong chuỗi VBA thành các giá trị ngày thực tế.
  • Kết quả của định dạng hàm CDATE chỉ phụ thuộc vào định dạng ngày hệ thống.
  • Ngày được lưu trữ dưới dạng số sê-ri trong excel, vì vậy cần phải định dạng để hiển thị chúng dưới dạng ngày tháng.

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