Bạn phải gửi kèm cái add in của hàm vnd() lên kèm thì các anh, em mới biết cách sửa cho bạn chứ!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
Bạn tải file bài #9khi ấn Alt + F11 chỉ hiện lên 1 cửa sổ trắng tinh không có chữ gì cả
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...
Function SpeakVIEDate(ByVal lDate As Long) As String
Dim slb1 As String, slb2 As String, slb3 As String
Dim sDay As String, sMonth As String, sYear As String
Dim lDay As Long, lMonth As Long, lYear As Long
slb1 = "Ngày "
slb2 = "Tháng "
slb3 = "N" & ChrW(259) & "m "
lDay = Day(lDate)
lMonth = Month(lDate)
lYear = Year(lDate)
sDay = DocSo(lDay)
If lMonth = 1 Then
sMonth = "giêng"
ElseIf lMonth = 4 Then
sMonth = "t" & ChrW(432)
Else
sMonth = DocSo(lMonth)
End If
sYear = DocSo(Year(lDate))
SpeakVIEDate = slb1 & sDay & ", " & slb2 & sMonth & ", " & slb3 & sYear
End Function
1) Code của bác có sửa được "tháng bốn" thành "tháng tư" không a?Đây chính là cái sai nghiêm trọng của code (không phải bạn sai)
Đúng ra đã là code thì sẽ không vì setting trong Control Panel mà lại cho kết quả sai được
Nếu là tôi thì tôi làm như sau:
1> Lượm đại 1 code đọc số nào đó cảm thấy vừa ý cho vào code
2> Viết thêm 1 code đọc ngày tháng (dựa vào code đọc số đã có)
Ví dụ:
1> Tôi có code đọc số (lượm của bạn huuthang_bd) với cú pháp =DocSo(Number)
2> Giờ tôi viết thêm code đọc ngày tháng như sau:
Cú pháp đọc ngày tháng =SpeakVIEDate(A1) với A1 là ngày tháng nào đóMã:Function SpeakVIEDate(ByVal lDate As Long) As String Dim slb1 As String, slb2 As String, slb3 As String Dim sDay As String, sMonth As String, sYear As String Dim lDay As Long, lMonth As Long, lYear As Long slb1 = "Ngày " slb2 = "Tháng " slb3 = "N" & ChrW(259) & "m " lDay = Day(lDate) lMonth = Month(lDate) lYear = Year(lDate) sDay = DocSo(lDay) If lMonth = 1 Then sMonth = "giêng" ElseIf lMonth = 4 Then sMonth = "t" & ChrW(432) Else sMonth = DocSo(lMonth) End If sYear = DocSo(Year(lDate)) SpeakVIEDate = slb1 & sDay & ", " & slb2 & sMonth & ", " & slb3 & sYear End Function
Code này không bị ảnh hưởng bởi setting trong control panel
Các bạn kiểm tra thử nhé (viết đại, chưa kiểm tra hết các trường hợp)
1) Code của bác có sửa được "tháng bốn" thành "tháng tư" không a?
Hay bác sửa Code ở bài #6 cho em để sửa được vấn đề trên nhé
Tạm thời OK rồi (em đã thử mấy trường hợp rồi)
Em muốn đổi tên cú pháp hàm là =HTNgay() thì thế nào a?
Em đổi rồiBấm Alt + F11 vào code
Bấm Ctrl + H, thay chữ SpeakVIEDate thành HTNgay
Xong!
(Sao mà tôi ghét mấy cái biến, tên hàm, tên Sub tiếng Việt thế không biết ---> Nhìn nó chẳng ra làm sao cả ---> Một mai có thằng Tây nó vào xem, bảo đảm nó sẽ không bao giờ biết HTNgay là cái quỷ gì cả, nhưng nếu thấy chứ SpeakVIEDate, tôi tin nó biết đó là gì liền)
Trong Code của bác không sử dụng chữ "mồng" cho những ngày nhỏ hơn 10 a?
Có phải do chính tả không cần dùng chữ "mồng" vậy bác
If lDay <= 10 Then
sDay = "m" & ChrW(7891) & "ng " & DocSo(lDay)
Else
sDay = DocSo(lDay)
End If
Bạn sai rồi... Bất cứ một trang web nào cũng có ước muốn mang tính TOÀN CẦU ---> Tức ai có nhu cầu đều phải nghĩ đến nó... và tôi nghĩ GPE cũng sẽ không ngoại lệ đâuNhưng có mấy khi có "thằng Tây" vào xem mà nhiều người Việt xem mà bác
Giả sử em muốn thêm chữ "mồng" thì phải thêm Code vào chỗ nào vậy bác?Khi tôi còn nhỏ, nghe các ông bà dạy rằng: Dùng "Mồng" (hoặc "Mừng") cho ngày Âm Lịch, còn Dương Lịch thì không dùng
Nếu bạn thích "MỒNG" cứ vào code mà sửa
Giả sử em muốn thêm chữ "mồng" thì phải thêm Code vào chỗ nào vậy bác?
Vì đây là thêm Code chứ không phải sửa code. hi