Menu

Xử lý dữ liệu ngày tháng năm âm lịch sang dương lịch bằng VBA

Lò Lệ Vọng 05/06/2026 15:41 492 lượt xem 3 trả lời

Chào mọi người,

Mình đang làm một dự án nhỏ liên quan đến việc nhập liệu ngày tháng âm lịch vào Excel và cần chuyển đổi sang dương lịch để tính toán. Tuy nhiên, việc nhập liệu thủ công và chuyển đổi rất mất thời gian. Mình đã thử tìm kiếm trên mạng nhưng các hàm Excel có sẵn không hỗ trợ trực tiếp cho ngày âm lịch.

Vì vậy, mình muốn nhờ các cao thủ VBA trong diễn đàn giúp đỡ. Có cách nào để viết một hàm VBA tùy chỉnh, nhận vào ngày âm lịch (ví dụ: 01/01/Giáp Thìn) và trả về ngày dương lịch tương ứng không?

Hoặc nếu có module VBA nào đã được chia sẻ sẵn mà có chức năng này thì mọi người giới thiệu giúp mình với.

Mình xin cảm ơn!

2

Vụ chuyển đổi âm lịch sang dương lịch bằng VBA này hay đấy! Mình nhớ có lần cũng loay hoay với cái này.

Bạn có thể thử cách này: thay vì nhập liệu trực tiếp "01/01/Giáp Thìn", bạn có thể tạo một form nhập liệu bằng UserForm. Trong UserForm đó, bạn cho phép người dùng chọn năm (theo âm lịch), tháng (âm lịch), và ngày (âm lịch) bằng combobox hoặc textbox. Sau đó, bạn viết code VBA để xử lý logic chuyển đổi dựa trên các giá trị đã nhập này, rồi trả về ngày dương lịch tương ứng vào ô Excel.

Cách này có vẻ sẽ quản lý dữ liệu nhập vào tốt hơn và giảm thiểu lỗi nhập sai định dạng. Bạn đã nghĩ đến việc dùng UserForm chưa?

2

Chào bạn,

Vấn đề chuyển đổi âm lịch sang dương lịch bằng VBA này khá thú vị và cũng hay gặp. Mình từng làm qua một vài dự án tương tự. Thay vì viết một hàm mới hoàn toàn, bạn có thể thử tìm kiếm các thư viện hoặc add-in đã có sẵn hỗ trợ chuyển đổi âm dương lịch. Đôi khi, việc tích hợp sẵn sẽ nhanh và ổn định hơn là tự code từ đầu.

Nếu bạn muốn tự code, bạn có thể tham khảo các thuật toán chuyển đổi âm dương lịch có trên mạng, sau đó áp dụng logic đó vào VBA. Tuy nhiên, sẽ cần khá nhiều thời gian để kiểm tra và xử lý các trường hợp đặc biệt.

Bạn đã tìm hiểu đến đâu rồi? Có gặp khó khăn cụ thể nào trong việc áp dụng thuật toán không?

4

Chuyển đổi âm lịch sang dương lịch bằng VBA đúng là một bài toán thú vị!

Mình từng gặp trường hợp tương tự và thấy rằng việc tìm một hàm VBA có sẵn hoặc một đoạn code mẫu về chuyển đổi này là khả thi. Bạn thử tìm kiếm với các từ khóa như "VBA lunar to solar converter" hoặc "chuyển đổi âm dương lịch VBA" xem sao. Thường thì các cao thủ trên diễn đàn đã chia sẻ những đoạn code rất hay rồi.

Nếu bạn đã có ý tưởng về thuật toán chuyển đổi rồi, chia sẻ thêm để mọi người cùng thảo luận nhé!

5

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

Đăng nhập Đăng ký