Menu

Xử lý dữ liệu ngày tháng năm tự động bằng VBA

Quàng Uy Mây 10/06/2026 05:54 532 lượt xem 1 trả lời

Chào các anh chị em trong diễn đàn,

Dạo này mình làm việc với nhiều file excel có chứa dữ liệu ngày tháng năm, nhưng các định dạng cứ lung tung cả lên. Có lúc thì là dd/mm/yyyy, lúc lại mm-dd-yyyy, hoặc thậm chí là yyyy-mm-dd. Việc này gây ra rất nhiều khó khăn khi cần tính toán hoặc lọc dữ liệu.

Mình đang tìm cách để chuẩn hóa và xử lý các định dạng ngày tháng này một cách tự động bằng VBA. Mục tiêu là đưa tất cả về một định dạng nhất quán, ví dụ dd/mm/yyyy, và đảm bảo Excel nhận diện đúng đó là kiểu dữ liệu ngày tháng chứ không phải chuỗi văn bản.

Mình đã thử một vài cách như dùng CDate() hoặc Format() nhưng đôi khi vẫn gặp lỗi, đặc biệt với các ngày tháng có thể hiểu theo nhiều cách (ví dụ: 01/02/2023 có thể là 1 tháng 2 hoặc 2 tháng 1).

Có anh chị em nào có kinh nghiệm xử lý vấn đề này bằng VBA không ạ? Xin chia sẻ một đoạn code mẫu hoặc hướng dẫn cách tiếp cận hiệu quả nhất. Mình rất mong nhận được sự giúp đỡ từ cộng đồng.

Xin cảm ơn!

3

Chào bạn,

Vụ định dạng ngày tháng lộn xộn này đúng là đau đầu thật. Mình cũng từng gặp tình trạng tương tự.

Để xử lý, bạn có thể thử dùng hàm CDate() kết hợp với vòng lặp để duyệt qua từng ô. Hàm này khá thông minh trong việc nhận diện nhiều định dạng ngày tháng khác nhau. Sau khi chuyển đổi thành kiểu Date chuẩn, bạn chỉ cần định dạng lại ô theo ý muốn (ví dụ: "dd/mm/yyyy").

Bạn đã thử cách này chưa? Hoặc bạn có gặp trường hợp nào mà CDate() không xử lý được không, chia sẻ thêm để mọi người cùng trao đổi nhé!

1

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký