Đọc số ra chữ bị mã hóa hoặc thiều font

  • Thread starter Thread starter hvphong
  • Ngày gửi Ngày gửi
Liên hệ QC

hvphong

Thành viên chính thức
Tham gia
28/9/07
Bài viết
56
Được thích
1
Mình sử dụng Code đọc số chữ này trên office 2003 bình thường, nhưng sử dụng trên office 2010 bị lỗi font. cho mình hỏi là do máy bị thiếu font hay code không tương thích? Sao mình làm đi làm lại mấy ngày không được.

Mình hiện nay đang sử dụng office 2010 và rất cần sử dụng code này.

Rất mong diển đàn trợ giúp. Kèm theo file.
 

File đính kèm

Mình sử dụng Code đọc số chữ này trên office 2003 bình thường, nhưng sử dụng trên office 2010 bị lỗi font. cho mình hỏi là do máy bị thiếu font hay code không tương thích? Sao mình làm đi làm lại mấy ngày không được.

Mình hiện nay đang sử dụng office 2010 và rất cần sử dụng code này.

Rất mong diển đàn trợ giúp. Kèm theo file.
Mình có thấy code nào trong file của bạn đâu.
Mình vẫn đang dùng add in của a NguyenDuyTuan bằng hàm là =vnd() đang sử dụng bình thường. Bạn tìm trên diễn đàn đi.
 
Mình đã sư dụng 2 code sau đây lâu rồi nhưng trên office 2003, hiện nay sử dụng trên 2010 bị lỗi (vẫn đọc được số ra chữ nhưng bị mã không đọc được). do mình làm 2 code trên cùng file bị lỗi rồi.
- Mình muốn cùng một số(Á=1234567890) khi dùng vnd(A1)="........đồng"; khi dùng vnm(A1)="......mét vuông".

1. code1 :
Public Function VND(BaoNhieu)
Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
Dim l, J, Vitri As Byte, S As Double
Dim Hang, Doc, Dem
If BaoNhieu = 0 Then
KetQua = "Không đồng"
Else
If Abs(BaoNhieu) >= 1E+15 Then
KetQua = "Số quá lớn"
Else
If BaoNhieu < 0 Then
KetQua = "Âm" & Space(1)
Else
KetQua = Space(0)
End If
SoTien = Format(Abs(BaoNhieu), "##############0.00")
SoTien = Right(Space(15) & SoTien, 18)
Hang = Array("None", "trăm", "mươi", "gì đó")
Doc = Array("None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "đồng", "")
Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
For l = 1 To 6
Nhom = Mid(SoTien, l * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If l = 5 Then
Chu = "đồng" & Space(1)
Else
Chu = Space(0)
End If
Case "00"
Chu = "chẳn"
Case Else
S1 = Left(Nhom, 1)
S2 = Mid(Nhom, 2, 1)
S3 = Right(Nhom, 1)
Chu = Space(0)
Hang(3) = Doc(l)
For J = 1 To 3
Dich = Space(0)
S = Val(Mid(Nhom, J, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(J) & Space(1)
End If
Select Case J
Case 2 And S = 1
Dich = "mười" & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0"
Dich = Hang(J) & Space(1)
Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0"
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And l = 4) Then
Dich = "lẻ" & Space(1)
End If
End Select
Chu = Chu & Dich
Next J
End Select
Vitri = InStr(1, Chu, "mươi một", 1)
If Vitri > 0 Then Mid(Chu, Vitri, 9) = "mươi mốt"
KetQua = KetQua & Chu
End If
Next l
End If
End If
VND = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
End Function

2. code 2:
Public Function VNM(BaoNhieu)
Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
Dim l, J, Vitri As Byte, S As Double
Dim Hang, Doc, Dem
If BaoNhieu = 0 Then
KetQua = "Không mét vuông"
Else
If Abs(BaoNhieu) >= 1E+15 Then
KetQua = "Số quá lớn"
Else
If BaoNhieu < 0 Then
KetQua = "Âm" & Space(1)
Else
KetQua = Space(0)
End If
SoTien = Format(Abs(BaoNhieu), "##############0.00")
SoTien = Right(Space(15) & SoTien, 18)
Hang = Array("None", "trăm", "mươi", "gì đó")
Doc = Array("None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "mét vuông", "")
Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
For l = 1 To 6
Nhom = Mid(SoTien, l * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If l = 5 Then
Chu = "mét vuông" & Space(1)
Else
Chu = Space(0)
End If
Case "00"
Chu = "chẳn"
Case Else
S1 = Left(Nhom, 1)
S2 = Mid(Nhom, 2, 1)
S3 = Right(Nhom, 1)
Chu = Space(0)
Hang(3) = Doc(l)
For J = 1 To 3
Dich = Space(0)
S = Val(Mid(Nhom, J, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(J) & Space(1)
End If
Select Case J
Case 2 And S = 1
Dich = "mười" & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0"
Dich = Hang(J) & Space(1)
Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0"
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And l = 4) Then
Dich = "lẻ" & Space(1)
End If
End Select
Chu = Chu & Dich
Next J
End Select
Vitri = InStr(1, Chu, "mươi một", 1)
If Vitri > 0 Then Mid(Chu, Vitri, 9) = "mươi mốt"
KetQua = KetQua & Chu
End If
Next l
End If
End If
VNM = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
End Function
 
Đuôi xlsx thì lấy đâu ra macro hoạt động?
 
Web KT

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

Back
Top Bottom