quanghoasla > 08-02-12, 03:49 PM
bomnhauag > 09-02-12, 11:18 AM
quanghoasla > 09-02-12, 06:55 PM
quanghoasla > 09-02-12, 10:57 PM
domfootwear > 10-02-12, 08:41 AM
(09-02-12, 10:57 PM)quanghoasla Đã viết: có một vấn đề sau khi thực hiện đoạn lệnh sau thì thấy có dấu chấm khó chịu.
ví dụ: ô A2 ="Ngày mùng " &VND(DAY(A1)) & "Tháng " &VND(MONTH(A1))
ra kết quả ở ô A2 như sau: Ngày mùng Ba.Tháng Sáu.
đấy là mình mới thử test như thế. còn hàm ở trong cục add in mình không biết cách sử lý thế nào.
bạn có cách nào giúp mình bỏ cái dấu chấm ở sau một câu lệnh đó?
cám ơn các bạn nhiều
bạn nào có hàm function viết cho modul trên file excel? cho mình xin nhé. x
Function DocSoVni(conso) As String
s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm", " chín")
lop3 = Array("", " trieäu", " nghìn", " tyû")
If Trim(conso) = "" Then
DocSoVni = ""
ElseIf IsNumeric(conso) = True Then
If conso < 0 Then dau = "aâm " Else dau = ""
conso = Application.WorksheetFunction.Round(Abs(conso), 0)
conso = " " & conso
conso = Replace(conso, ",", "", 1)
vt = InStr(1, conso, "E")
If vt > 0 Then
sonhan = Val(Mid(conso, vt + 1))
conso = Trim(Mid(conso, 2, vt - 2))
conso = conso & String(sonhan - Len(conso) + 1, "0")
End If
conso = Trim(conso)
sochuso = Len(conso) Mod 9
If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
docso = ""
i = 1
lop = 1
Do
n1 = Mid(conso, i, 1)
n2 = Mid(conso, i + 1, 1)
n3 = Mid(conso, i + 2, 1)
baso = Mid(conso, i, 3)
i = i + 3
If n1 & n2 & n3 = "000" Then
If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 = ""
Else
If n1 = 0 Then
If docso = "" Then s1 = "" Else s1 = " khoâng traêm"
Else
s1 = s09(n1) & " traêm"
End If
If n2 = 0 Then
If s1 = "" Or n3 = 0 Then
s2 = ""
Else
s2 = " linh"
End If
Else
If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi"
End If
If n3 = 1 Then
If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát"
ElseIf n3 = 5 And n2 <> 0 Then
s3 = " laêm"
Else
s3 = s09(n3)
End If
If i > Len(conso) Then
s123 = s1 & s2 & s3
Else
s123 = s1 & s2 & s3 & lop3(lop)
End If
End If
lop = lop + 1
If lop > 3 Then lop = 1
docso = docso & s123
If i > Len(conso) Then Exit Do
Loop
If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso)
Else
DocSoVni = conso
End If
End Function
Function DocNgay(Ngay) As String
DocNgay = "Ngaøy " & DocSoVni(Day(Ngay)) & ", thaùng " & DocSoVni(Month(Ngay)) & ", naêm " & DocSoVni(Year(Ngay)) & "."
End Function
quanghoasla > 10-02-12, 06:30 PM
quanghoasla > 11-02-12, 01:19 AM
Function DocSoVni(conso) As String
s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm", " chín")
lop3 = Array("", " trieäu", " nghìn", " tyû")
If Trim(conso) = "" Then
DocSoVni = ""
ElseIf IsNumeric(conso) = True Then
If conso < 0 Then dau = "aâm " Else dau = ""
conso = Application.WorksheetFunction.Round(Abs(conso), 0)
conso = " " & conso
conso = Replace(conso, ",", "", 1)
vt = InStr(1, conso, "E")
If vt > 0 Then
sonhan = Val(Mid(conso, vt + 1))
conso = Trim(Mid(conso, 2, vt - 2))
conso = conso & String(sonhan - Len(conso) + 1, "0")
End If
conso = Trim(conso)
sochuso = Len(conso) Mod 9
If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
docso = ""
i = 1
lop = 1
Do
n1 = Mid(conso, i, 1)
n2 = Mid(conso, i + 1, 1)
n3 = Mid(conso, i + 2, 1)
baso = Mid(conso, i, 3)
i = i + 3
If n1 & n2 & n3 = "000" Then
If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 = ""
Else
If n1 = 0 Then
If docso = "" Then s1 = "" Else s1 = " khoâng traêm"
Else
s1 = s09(n1) & " traêm"
End If
If n2 = 0 Then
If s1 = "" Or n3 = 0 Then
s2 = ""
Else
s2 = " linh"
End If
Else
If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi"
End If
If n3 = 1 Then
If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát"
ElseIf n3 = 5 And n2 <> 0 Then
s3 = " laêm"
Else
s3 = s09(n3)
End If
If i > Len(conso) Then
s123 = s1 & s2 & s3
Else
s123 = s1 & s2 & s3 & lop3(lop)
End If
End If
lop = lop + 1
If lop > 3 Then lop = 1
docso = docso & s123
If i > Len(conso) Then Exit Do
Loop
If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso)
Else
DocSoVni = conso
End If
End Function
Function DocNgay(Ngay) As String
Dim viet As String
If Day(Ngay) <= 10 Then
viet = "moàng"
End If
DocNgay = "Ngaøy " & viet & DocSoVni(Day(Ngay)) & " thaùng" & DocSoVni(Month(Ngay)) & " naêm " & DocSoVni(Year(Ngay)) & "."
End Function
domfootwear > 11-02-12, 08:38 AM
(11-02-12, 01:19 AM)quanghoasla Đã viết: hiiiiii mình giải quyết được rồi. đây là code mìh chỉnh sửa như sau:Lỡ làm thì làm luôn cho nó khớp luôn, ví dụ tháng 1, tháng 4, tháng 12(nếu muốn). Ta phải đọc nó là tháng Giêng (Tháng 1), tháng Tư (Tháng 4), tháng Chạp (Tháng 12).
đoạn code 1 giữ nguyên:
ĐOẠN CODE 2 THÊM NHƯ SAU:Mã:Function DocSoVni(conso) As String
s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm", " chín")
lop3 = Array("", " trieäu", " nghìn", " tyû")
If Trim(conso) = "" Then
DocSoVni = ""
ElseIf IsNumeric(conso) = True Then
If conso < 0 Then dau = "aâm " Else dau = ""
conso = Application.WorksheetFunction.Round(Abs(conso), 0)
conso = " " & conso
conso = Replace(conso, ",", "", 1)
vt = InStr(1, conso, "E")
If vt > 0 Then
sonhan = Val(Mid(conso, vt + 1))
conso = Trim(Mid(conso, 2, vt - 2))
conso = conso & String(sonhan - Len(conso) + 1, "0")
End If
conso = Trim(conso)
sochuso = Len(conso) Mod 9
If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
docso = ""
i = 1
lop = 1
Do
n1 = Mid(conso, i, 1)
n2 = Mid(conso, i + 1, 1)
n3 = Mid(conso, i + 2, 1)
baso = Mid(conso, i, 3)
i = i + 3
If n1 & n2 & n3 = "000" Then
If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 = ""
Else
If n1 = 0 Then
If docso = "" Then s1 = "" Else s1 = " khoâng traêm"
Else
s1 = s09(n1) & " traêm"
End If
If n2 = 0 Then
If s1 = "" Or n3 = 0 Then
s2 = ""
Else
s2 = " linh"
End If
Else
If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi"
End If
If n3 = 1 Then
If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát"
ElseIf n3 = 5 And n2 <> 0 Then
s3 = " laêm"
Else
s3 = s09(n3)
End If
If i > Len(conso) Then
s123 = s1 & s2 & s3
Else
s123 = s1 & s2 & s3 & lop3(lop)
End If
End If
lop = lop + 1
If lop > 3 Then lop = 1
docso = docso & s123
If i > Len(conso) Then Exit Do
Loop
If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso)
Else
DocSoVni = conso
End If
End Function
Mã:Function DocNgay(Ngay) As String
Dim viet As String
If Day(Ngay) <= 10 Then
viet = "moàng"
End If
DocNgay = "Ngaøy " & viet & DocSoVni(Day(Ngay)) & " thaùng" & DocSoVni(Month(Ngay)) & " naêm " & DocSoVni(Year(Ngay)) & "."
End Function
Function DocNgay(Ngay) As String
Dim sNgay, sThang As String
sNgay = Day(Ngay): sThang = DocSoVni(Month(Ngay))
If sNgay <= 10 Then
sNgay = "moàng " & DocSoVni(sNgay)
Else
sNgay = DocSoVni(sNgay)
End If
Select Case sThang
Case "moät"
sThang = "gieâng"
Case "boán"
sThang = "tö"
Case "möôøi hai"
sThang = "chaïp"
Case Else
sThang = sThang
End Select
DocNgay = "Ngaøy " & sNgay & ", thaùng " & sThang & ", naêm " & DocSoVni(Year(Ngay)) & "."
End Function
quanghoasla > 13-02-12, 01:12 AM
domfootwear > 13-02-12, 02:21 PM
(13-02-12, 01:12 AM)quanghoasla Đã viết: quanghoasla xin cảm ơn các anh/chị pro nhiều. dạ em muốn dùng font chữ cho dịch từ ngày tháng sang chữ từ VNI-times sang unicode được? sao em chuyển code sang unicode thì bị vỡ chữ nhỉ? có cách nào giúp em chuyển về fonts unicode không bị vỡ chữ không ạ?
Function DocSoUni(conso) As String
s09 = Array("", " 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")
lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927))
If Trim(conso) = "" Then
DocSoUni = ""
ElseIf IsNumeric(conso) = True Then
If conso < 0 Then dau = ChrW(226) & "m " Else dau = ""
conso = Application.WorksheetFunction.Round(Abs(conso), 0)
conso = " " & conso
conso = Replace(conso, ",", "", 1)
vt = InStr(1, conso, "E")
If vt > 0 Then
sonhan = Val(Mid(conso, vt + 1))
conso = Trim(Mid(conso, 2, vt - 2))
conso = conso & String(sonhan - Len(conso) + 1, "0")
End If
conso = Trim(conso)
sochuso = Len(conso) Mod 9
If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
docso = ""
i = 1
lop = 1
Do
n1 = Mid(conso, i, 1)
n2 = Mid(conso, i + 1, 1)
n3 = Mid(conso, i + 2, 1)
baso = Mid(conso, i, 3)
i = i + 3
If n1 & n2 & n3 = "000" Then
If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " t" & ChrW(7927) Else s123 = ""
Else
If n1 = 0 Then
If docso = "" Then s1 = "" Else s1 = " kh" & ChrW(244) & "ng tr" & ChrW(259) & "m"
Else
s1 = s09(n1) & " tr" & ChrW(259) & "m"
End If
If n2 = 0 Then
If s1 = "" Or n3 = 0 Then
s2 = ""
Else
s2 = " linh"
End If
Else
If n2 = 1 Then s2 = " m" & ChrW(432) & ChrW(7901) & "i" Else s2 = s09(n2) & " m" & ChrW(432) & ChrW(417) & "i"
End If
If n3 = 1 Then
If n2 = 1 Or n2 = 0 Then s3 = " m" & ChrW(7897) & "t" Else s3 = " m" & ChrW(7889) & "t"
ElseIf n3 = 5 And n2 <> 0 Then
s3 = " l" & ChrW(259) & "m"
Else
s3 = s09(n3)
End If
If i > Len(conso) Then
s123 = s1 & s2 & s3
Else
s123 = s1 & s2 & s3 & lop3(lop)
End If
End If
lop = lop + 1
If lop > 3 Then lop = 1
docso = docso & s123
If i > Len(conso) Then Exit Do
Loop
If docso = "" Then DocSoUni = "kh" & ChrW(244) & "ng" Else DocSoUni = dau & Trim(docso)
Else
DocSoUni = conso
End If
End Function
Function DocNgay(Ngay) As String
Dim sNgay, sThang As String
sNgay = Day(Ngay): sThang = DocSoUni(Month(Ngay))
If sNgay <= 10 Then
sNgay = "m" & ChrW(7891) & "ng " & DocSoUni(sNgay)
Else
sNgay = DocSoUni(sNgay)
End If
Select Case sThang
Case "m" & ChrW(7897) & "t"
sThang = "giêng"
Case "b" & ChrW(7889) & "n"
sThang = "t" & ChrW(432)
Case "m" & ChrW(432) & ChrW(7901) & "i hai"
sThang = "ch" & ChrW(7841) & "p"
Case Else
sThang = sThang
End Select
DocNgay = "Ngày " & sNgay & ", tháng " & sThang & ", n" & ChrW(259) & "m " & DocSoUni(Year(Ngay)) & "."
End Function