Trên diễn đàn nhiều lắm!!!Nhờ các bạn tạo công thức hoặc VBA để tạo được cột ngày âm lịch theo cột ngày dương lịch
Là hảm tự tạo mà!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Cảm ơn bạn Hong Van đã chỉ dẫn
Nhưng tôi thấy các bài viết chủ yếu là lịch âm dương chỉ có 1 file là làm công thức để hiện ra ngày âm ở đây http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=17860&d=1226041386, tôi đã thử nhưng kết quả không chính xác.
Mong các cao thủ giúp đỡ
cách xử lý: bạn đặt con trỏ chuột ở trên thanh cthức rồi enter (ví dụ chọn cell B9-> bấm fím F2 -> Enter) bạn thử xem sao!!!!Nhờ bạn Hong.Van xem lại hộ tôi file bạn làm cho tôi. Tôi tải về dùng cho năm 2008 thì bị sai một số ngày âm (tôi đánh dấu mầu vàng)
Public Function AmLich(ByVal solarday As Integer, ByVal solarmonth As Integer, ByVal solaryear As Integer) As String
Dim Vsteam(9) As String, Vbranch(11) As String, llm As Boolean
Dim mStr$
'khai bao thien can tieng viet
Vsteam(0) = "Gia1p": Vsteam(1) = "A61t": Vsteam(2) = "Bi1nh": Vsteam(3) = "D9inh"
Vsteam(4) = "Ma65u": Vsteam(5) = "Ky3": Vsteam(6) = "Canh": Vsteam(7) = "Ta6n"
Vsteam(8) = "Nha6m": Vsteam(9) = "Quy1"
'khai bao dia chi tieng viet
Vbranch(0) = "Ty1": Vbranch(1) = "Su73u": Vbranch(2) = "Da62n": Vbranch(3) = "Ma4o"
Vbranch(4) = "Thi2n": Vbranch(5) = "Ty5": Vbranch(6) = "Ngo5": Vbranch(7) = "Mu2i"
Vbranch(8) = "Tha6n": Vbranch(9) = "Da65u": Vbranch(10) = "Tua61t": Vbranch(11) = "Ho75i"
With solar2lunar(solarday, solarmonth, solaryear, local_timezone)
mStr = .lunarday
mStr = mStr & "/" & .lunarmonth & " - "
mStr = mStr & Vsteam((.lunaryear + 6) Mod 10)
mStr = mStr & " " & Vbranch((.lunaryear + 8) Mod 12)
[B][COLOR=#ff0000] mStr = mStr & IIf(.leapmoon, " (Tha1ng Nhua65n)", "")[/COLOR][/B]
End With
AmLich = ToUni(mStr)
End Function
Public Function Amlich1(ByVal solarday As Integer, ByVal solarmonth As Integer, ByVal solaryear As Integer) As String
Dim Vsteam, Vbranch, mStr$
Vsteam = Split("Gia1p;A61t;Bi1nh;D9inh;Ma65u;Ky3;Canh;Ta6n;Nha6m;Quy1", ";")
Vbranch = Split("Ty1;Su73u;Da62n;Ma4o;Thi2n;Ty5;Ngo5;Mu2i;Tha6n;Da65u;Tua61t;Ho75i", ";")
With solar2lunar(solarday, solarmonth, solaryear, local_timezone)
Amlich1 = .lunarday
Amlich1 = Amlich1 & "/" & .lunarmonth & " - "
Amlich1 = Amlich1 & Vsteam((.lunaryear + 6) Mod 10)
Amlich1 = Amlich1 & " " & Vbranch((.lunaryear + 8) Mod 12)
Amlich1 = Amlich1 & IIf(.leapmoon, " (Tha1ng Nhua65n)", "")
End With
Amlich1 = ToUni(Amlich1)
End Function
cách xử lý: bạn đặt con trỏ chuột ở trên thanh cthức rồi enter (ví dụ chọn cell B9-> bấm fím F2 -> Enter) bạn thử xem sao!!!!
Cái hàm bài trước dài và loằng ngoằng quá, có thể viết lại
Cảm ơn bạn Sealand
Theo tôi thì đối với file này có code ngắn hay dài thì tốc độ chạy không khác nhau. Code của bạn tôi đã thử chạy trên các máy đều đúng, riêng code của bạn Hong.Van chạy trên máy cài Win XP thì đúng, còn chạy trên máy cài Win7 đều sai cả ở Word 2003 và word 2013, không biết tại sao, mong các bạn kiểm tra giúp.