Chuyển đổi ngày tháng sang chữ (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nam739478

Thành viên mới
Tham gia
26/9/09
Bài viết
38
Được thích
2
tôi muốn đổi dạng ngày tháng sang chữ thì làm như thế nào?
VD tại A1 có dang 23/11/2012 sang A3 đổi thành "ngày hai mươi ba tháng mười một năm hai nghìn mười hai"
mong các Pro giup đỡ
mong sớm nhận được câu trả lời
 
tôi muốn đổi dạng ngày tháng sang chữ thì làm như thế nào?
VD tại A1 có dang 23/11/2012 sang A3 đổi thành "ngày hai mươi ba tháng mười một năm hai nghìn mười hai"
mong các Pro giup đỡ
mong sớm nhận được câu trả lời

Em chỉ chuyển được ra dạng là ngày 23 tháng 11 năm 2012 thôi, chứ ra chữ xin nhờ các Thầy chỉ giúp em huhu.file em làm đây ạ.+-+-+-+
 

File đính kèm

Upvote 0
Em chỉ chuyển được ra dạng là ngày 23 tháng 11 năm 2012 thôi, chứ ra chữ xin nhờ các Thầy chỉ giúp em huhu.file em làm đây ạ.+-+-+-+
1/ Cái này chỉ lập trình thôi bạn, giống như đọc số thành chữ
2/ Muốn làm bằng công thức thì fài lập rất nhiều Name
 
Upvote 0
Hàm này hơi dài nhưng cũng dùng được:
Attribute VB_Name = "HTNgay_Function"
'Option Explicit
Function HTNgay(ByVal Vdate As Date) As String
On Error Resume Next
Vdate = Format(Vdate, "dd/mm/yyyy")
If IsDate(Vdate) = False Then HTNgay = "B" & ChrW$(7841) & "n ph" & ChrW$(7843) & "i ch" & ChrW$(7885) & "n l" & ChrW$(224) & " ngày! -By: Htrung.aof@gmail.com": Exit Function
Hang = Array("None", "ng" & ChrW$(224) & "n", "tr" & ChrW$(259) & "m", "m" & ChrW$(432) & ChrW$(417) & "i", Space(0))
Dem = Array("không", "m" & ChrW$(7897) & "t", "hai", "ba", "b" & ChrW$(7889) & "n", "n" & ChrW$(259) & "m", "s" & ChrW$(225) & "u", "b" & ChrW$(7843) & "y", "t" & ChrW$(225) & "m", "ch" & ChrW$(237) & "n")
'Doc so ngày
VNgay = Left(Vdate, 2)
If Val(VNgay) < 10 Then
DNgay = "Ngày" & Space(1) & "m" & ChrW$(7891) & "ng" & Space(1) & Dem(Val(VNgay))
ElseIf Val(VNgay) = 10 Then
DNgay = "Ngày" & Space(1) & "m" & ChrW$(7891) & "ng" & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i"
ElseIf Val(VNgay) > 10 And Val(VNgay) < 20 And Val(VNgay) <> 15 Then
DNgay = "Ngày" & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i" & Space(1) & Dem(Val(Right(VNgay, 1)))
ElseIf Val(VNgay) > 10 And Val(VNgay) < 20 And Val(VNgay) = 15 Then
DNgay = "Ngày" & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i" & Space(1) & "l" & ChrW$(259) & "m"
ElseIf Val(VNgay) >= 20 And Val(Right(VNgay, 1)) = 0 Then
DNgay = "Ngày" & Space(1) & Dem(Val(Left(VNgay, 1))) & Space(1) & "m" & ChrW$(432) & ChrW$(417) & "i"
ElseIf Val(VNgay) >= 20 And Val(Right(VNgay, 1)) = 1 Then
DNgay = "Ngày" & Space(1) & Dem(Val(Left(VNgay, 1))) & Space(1) & "m" & ChrW$(432) & ChrW$(417) & "i" & Space(1) & "m" & ChrW$(7889) & "t"
ElseIf Val(VNgay) >= 20 And Val(Right(VNgay, 1)) <> 0 And Val(Right(VNgay, 1)) <> 1 And Val(Right(VNgay, 1)) <> 5 Then
DNgay = "Ngày" & Space(1) & Dem(Val(Left(VNgay, 1))) & Space(1) & "m" & ChrW$(432) & ChrW$(417) & "i" & Space(1) & Dem(Val(Right(VNgay, 1)))
ElseIf Val(VNgay) = 25 Then
DNgay = "Ngày" & Space(1) & "hai" & Space(1) & "m" & ChrW$(432) & ChrW$(417) & "i" & Space(1) & "l" & ChrW$(259) & "m"
End If
'Doc so cua tháng
vthang = Val(Mid(Vdate, 4, 2))
If vthang = 12 Then
Dthang = "tháng" & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i" & Space(1) & "hai"
ElseIf vthang = 11 Then
Dthang = "tháng" & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i" & Space(1) & "m" & ChrW$(7897) & "t"
ElseIf vthang = 10 Then
Dthang = "tháng" & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i"
Else
Dthang = "tháng" & Space(1) & Dem(vthang)
End If
'Doc so cua nam
Vnam = Right(Vdate, 4)
N1 = Val(Mid(Vnam, 1, 1))
N2 = Mid(Vnam, 2, 3)
DNgan = Dem(N1) & Space(1) & "ngàn"
If Val(N2) = 0 Then
Dtram = Space(0)
Else
N11 = Mid(N2, 1, 1)
N22 = Mid(N2, 2, 1)
N33 = Mid(N2, 3, 1)
For i = 2 To 3
Nhom = Val(Mid(N2, i, 1))
Dtram = Dem(N11) & Space(0)
Select Case i
Case 2 And N22 = 0 And N33 = 0
le = Hang(2)
Case 2 And N22 = 0
le = Hang(2) & Space(1) & "l" & ChrW$(7867) & Space(1) & Dem(N33)
Case 2 And N22 = 1 And N33 = 0
le = Hang(2) & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i"
Case 2 And N22 = 1 And N33 = 5
le = Hang(2) & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i" & Space(1) & "l" & ChrW$(259) & "m"
Case 2 And N22 = 1 And N33 <> 0 And N33 <> 5
le = Hang(2) & Space(1) & "m" & ChrW$(432) & ChrW$(7901) & "i" & Space(1) & Dem(N33)
Case 2 And N22 >= 2 And N33 = 0
le = Hang(2) & Space(1) & Dem(N22) & Space(1) & "m" & ChrW$(432) & ChrW$(417) & "i"
Case 2 And N22 >= 2 And N33 = 1
le = Hang(2) & Space(1) & Dem(N22) & Space(1) & "m" & ChrW$(432) & ChrW$(417) & "i" & Space(1) & "m" & ChrW$(7889) & "t"
Case 2 And N22 >= 2 And N33 = 5
le = Hang(2) & Space(1) & Dem(N22) & Space(1) & "m" & ChrW$(432) & ChrW$(417) & "i" & Space(1) & "l" & ChrW$(259) & "m"
Case 2 And N22 >= 2 And N33 <> 0 And N33 <> 1 And N33 <> 5
le = Hang(2) & Space(1) & Dem(N22) & Space(1) & "m" & ChrW$(432) & ChrW$(417) & "i" & Space(1) & Dem(N33)
End Select
Next
End If
KetQua = KetQua & Space(1) & DNgay & "," & Space(1) & Dthang & "," & Space(1) & "n" & ChrW$(259) & "m" & Space(1) & DNgan & Space(1) & Dtram & Space(1) & le & " '/."
HTNgay = UCase(Left(Trim(KetQua), 1)) & Mid(Trim(KetQua), 2)
End Function
 
Lần chỉnh sửa cuối:
Upvote 0
trời, vba à Anh??? có thể dùng hàm được không Anh nhỉ?+-+-+-+, mà em có đọc qua một số bài trên diễn đàn có thể dùng định dạng, nhưng không tài nào làm được như yêu cầu của đề bài, ra toàn dạng text thôi à huhu
 
Upvote 0
trời, vba à Anh??? có thể dùng hàm được không Anh nhỉ?+-+-+-+, mà em có đọc qua một số bài trên diễn đàn có thể dùng định dạng, nhưng không tài nào làm được như yêu cầu của đề bài, ra toàn dạng text thôi à huhu

Hướng dẫn:
- Bấm Start\Run, gõ lệnh Notepad vào rồi Enter (để mở chương trình Notepad)
- Copy nguyên "đám rừng" trên cho vào cừa số Notepad
- Save file thành tên tùy ý
- Khởi động Excel
- Bấm Alt + F11 vào cửa sổ lập trình
- Vào menu File, chọn lệnh Import file...
- Trong cửa sổ Import file, khung Type of file chọn All Files (*.*)
- Duyệt đến file text đã lưu khi nãy rồi bấm Open ---> Sẽ thấy 1 module xuất hiện với code là "đám rừng" kia
- Bấm Alt + Q để trở về bảng tính
- Gõ ngày tháng gì đó vào A1
- Cell B1, gõ công thức =HTNgay(A1)
Xong!
Tuy nhiên, với ngày tháng có vài số đọc không giống như đọc số. Ví dụ:
4/4/2010 thì phải đọc là ngày bốn tháng tư năm hai ngàn không trăm mười chứ không phải là ngày bốn tháng bốn năm hai ngàn không trăm mười đâu
 
Upvote 0
Hướng dẫn:
- Bấm Start\Run, gõ lệnh Notepad vào rồi Enter (để mở chương trình Notepad)
- Copy nguyên "đám rừng" trên cho vào cừa số Notepad
- Save file thành tên tùy ý
- Khởi động Excel
- Bấm Alt + F11 vào cửa sổ lập trình
- Vào menu File, chọn lệnh Import file...
- Trong cửa sổ Import file, khung Type of file chọn All Files (*.*)
- Duyệt đến file text đã lưu khi nãy rồi bấm Open ---> Sẽ thấy 1 module xuất hiện với code là "đám rừng" kia
- Bấm Alt + Q để trở về bảng tính
- Gõ ngày tháng gì đó vào A1
- Cell B1, gõ công thức =HTNgay(A1)
Xong!
Tuy nhiên, với ngày tháng có vài số đọc không giống như đọc số. Ví dụ:
4/4/2010 thì phải đọc là ngày bốn tháng tư năm hai ngàn không trăm mười chứ không phải là ngày bốn tháng bốn năm hai ngàn không trăm mười đâu

Thưa Thầy!em đã làm cho nó chạy thôi, nhưng em xin phép hỏi thêm tí nữa dòng chữ ra thế này ạ (Ngày mười một, , năm hai ngàn không trăm mười hai '/.)em không hiểu gì nhưng làm theo hướng dẫn thôi.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0

File đính kèm

Upvote 0
Thưa Thầy!em đã làm cho nó chạy thôi, nhưng em xin phép hỏi thêm tí nữa dòng chữ ra thế này ạ (Ngày mười một, , năm hai ngàn không trăm mười hai '/.)em không hiểu gì nhưng làm theo hướng dẫn thôi.
Cô xem file ví dụ ngày tháng năm trong đó chưa
Làm gì có "Ngày mười một, ," không có khoảng trắng giữa hai dấu , đâuChú ý ngày tháng định dạng dd/mm/yyyy
 
Upvote 0
To Vanle, em đã hiểu lý do sao em sai vì do em định dạng trong control panel!
To Anh "dongducnhiem", em làm cũng ra như trong file đây ạ.em không hiểu code viết gì, lệnh ra sao , em chỉ làm theo hướng dẫn của Thầy ndu thấy nó ra kết quả đúng...
 

File đính kèm

Upvote 0
To Vanle, em đã hiểu lý do sao em sai vì do em định dạng trong control panel!
To Anh "dongducnhiem", em làm cũng ra như trong file đây ạ.em không hiểu code viết gì, lệnh ra sao , em chỉ làm theo hướng dẫn của Thầy ndu thấy nó ra kết quả đúng...

Cái này tôi cũng nghĩ nó liên quan đến Control Panel
Trong mục Shot date format của tôi là :dd/MM/yy
 
Upvote 0
Cái này tôi cũng nghĩ nó liên quan đến Control Panel
Trong mục Shot date format của tôi là :dd/MM/yy
Vậy thì bạn thử chỉnh lại Short date là dd/mm/yyyy rồi tắt Excel và mở lại file của mình, đánh lại ngày và công thức/Enter xem ra kết quả như thế nào?
Máy tính của mình bất cứ lúc nào Ghost Win xong thì đều chỉnh luôn Short date như trên. Nên chắc không bị lỗi như bạn
 
Upvote 0
Vậy thì bạn thử chỉnh lại Short date là dd/mm/yyyy rồi tắt Excel và mở lại file của mình, đánh lại ngày và công thức/Enter xem ra kết quả như thế nào?
Máy tính của mình bất cứ lúc nào Ghost Win xong thì đều chỉnh luôn Short date như trên. Nên chắc không bị lỗi như bạn
Cái này chỉ hỏi lý do vì sao thôi, chứ tôi kg sử dụng addins này!
 
Upvote 0
Cũng thử vọc vạch tí, cái này cũng tùy biến từ hàm đọc số trên GPE, tùy biến 1 chút, fix tháng 4 (mới tập VBA nên code củ chuối)
=docngay()
 

File đính kèm

Upvote 0
tôi làm như thế này
ví dụ A1 = 26/11/2012
tại B1 ="Ngay "&vnd(DAY(A1))&" thang "&vnd(MONTH(A1))&" nam "&vnd(YEAR(A1))
kết quả cho: (ngày Hai mươi sáu tháng Mười một năm Hai ngàn, không trăm mười hai)
vậy làm sao tôi bỏ được dấu phẩy (,) ở chỗ năm hai ngàn không trăm mười hai vậy các Pro ơi
mong câu trả lời
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom