Code đọc số thành chữ không chạy được trên Excel 2007

Liên hệ QC

huycuongxd

Thành viên thường trực
Tham gia
20/6/08
Bài viết
397
Được thích
488
Nghề nghiệp
Kỹ sư Xây Dựng
Chào cả nhà
E có file excel dùng code đọc số thành chữ. Mở bằng excel 2003 thì dùng ngon lành nhưng sang excel 2007 thì ko chạy được mặc dù e đã thiết lập đúng trong Trust Center. Mà vào đâu để sửa code này các bác nhỉ (trong excel 2003 thì bấm Alt + F11)
Các bác xem file đính kèm và mách dùm e với nhé. E ko biết tí gì về code và macro...:-=
Cảm ơn các bác.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào cả nhà
E có file excel dùng code đọc số thành chữ. Mở bằng excel 2003 thì dùng ngon lành nhưng sang excel 2007 thì ko chạy được mặc dù e đã thiết lập đúng trong Trust Center. Mà vào đâu để sửa code này các bác nhỉ (trong excel 2003 thì bấm Alt + F11)
Các bác xem file đính kèm và mách dùm e với nhé. E ko biết tí gì về code và macro...:-=
Cảm ơn các bác.
trong 2007 cũng làm như bạn làm trong 2003 thui .
cũng Alt +f11 rùi vào xem code mà sửa lại
 
Mình bấm rồi nhưng ko được, bạn xem file đính kèm nhé.
Thanks.
file của bạn không có sử dụng code VBA gì cả. hình như là bạn copy một file excel nào đó mà dùng cách đọc số thành chữ thông qua cách đặt name rùi dùng đọc số thành chữ ===> bạn vào Alt + F11 chỉ thấy một sheet và thisworkboox. Ko có code.
bạn xem thử file mình dùng VBA, bạn sài tạm công thức đó nhé.
- để biết thêm vì sao nó ra sai kết quả bạn vào chỗ đặt Name của excel xem nhé.
chúc bạn thành công
Chú ý: cách xem code của ex2007 không khác gì ex2003
khi dùng ex2007 nhớ chọn Options ---> chọn Enable this content
 
Lần chỉnh sửa cuối:
file của bạn không có sử dụng code VBA gì cả. hình như là bạn copy một file excel nào đó mà dùng cách đọc số thành chữ thông qua cách đặt name rùi dùng đọc số thành chữ ===> bạn vào Alt + F11 chỉ thấy một sheet và thisworkboox. Ko có code.
bạn xem thử file mình dùng VBA, bạn sài tạm công thức đó nhé.
- để biết thêm vì sao nó ra sai kết quả bạn vào chỗ đặt Name của excel xem nhé.
chúc bạn thành công
Chú ý: cách xem code của ex2007 không khác gì ex2003
khi dùng ex2007 nhớ chọn Options ---> chọn Enable this content
Tôi lại không nghĩ thế, tôi nghi là file của bạn ấy dùng 1 addin hay 1 code nào đó nhưng không copy được code hay addin đi kèm nên công thức đó bị lỗi NAME do dùng UDF chứ không phải do dùng NAME.
Tôi mở file của bạn bằng office 2007 và làm theo hướng dẫn của bạn nhưng không được, sau khi nhấn chọn Enable this content thì ô đó cũng báo lỗi NAME và nhấn Alt+F11 cũng không thấy hiện ra cửa sổ code. Vậy thì phải làm thế nào để có thể nhìn thấy và sử dụng được code của bạn?
 
Tôi lại không nghĩ thế, tôi nghi là file của bạn ấy dùng 1 addin hay 1 code nào đó nhưng không copy được code hay addin đi kèm nên công thức đó bị lỗi NAME do dùng UDF chứ không phải do dùng NAME.
Tôi mở file của bạn bằng office 2007 và làm theo hướng dẫn của bạn nhưng không được, sau khi nhấn chọn Enable this content thì ô đó cũng báo lỗi NAME và nhấn Alt+F11 cũng không thấy hiện ra cửa sổ code. Vậy thì phải làm thế nào để có thể nhìn thấy và sử dụng được code của bạn?
Bạn xem code đính kèm file của mình chưa vậy. Cũng có thể file đó của Huycuong bạn nói đúng họ dùng addin hoặc dùng name,mà khi copy về bạn ấy ko tải hết thư viện. Tuy nhiên mình thay cho bạn ấy một code mới thì ko dùng name hay adin gì hết và mình thể hiện bằng kết quả ở bên dưới luôn. Nó vẫn chạy ok, bạn xem kết quả trong hình ảnh xem sao.
 
Lần chỉnh sửa cuối:
Bạn xem file mình post lại và giúp mình với nhé.
Mình mở bằng Excel 2003 thì chạy bình thường, bấm Alt+F11 thấy code:
Mã:
Public 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) & ",")
'lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927))
'Stop
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)
If docso = "" Then
     DocSoUni = "kh" & ChrW(244) & "ng"
Else: docso = Trim(docso): DocSoUni = dau & UCase(Left(docso, 1)) + Right(docso, Len(docso) - 1)
End If
Else
DocSoUni = conso
End If
If Right(DocSoUni, 1) = "," Then DocSoUni = Mid(DocSoUni, 1, Len(DocSoUni) - 1)
End Function
Sang Excel 2007 thì ko dùng được và không bấm Alt+F11 để xem được.
Cảm ơn bạn.
 

File đính kèm

Bạn xem file mình post lại và giúp mình với nhé.
Mình mở bằng Excel 2003 thì chạy bình thường, bấm Alt+F11 thấy code:
Mã:
Public 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) & ",")
'lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927))
'Stop
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)
If docso = "" Then
     DocSoUni = "kh" & ChrW(244) & "ng"
Else: docso = Trim(docso): DocSoUni = dau & UCase(Left(docso, 1)) + Right(docso, Len(docso) - 1)
End If
Else
DocSoUni = conso
End If
If Right(DocSoUni, 1) = "," Then DocSoUni = Mid(DocSoUni, 1, Len(DocSoUni) - 1)
End Function
Sang Excel 2007 thì ko dùng được và không bấm Alt+F11 để xem được.
Cảm ơn bạn.
Huy cường cái file này chạy vẫn được mà, mình tải về ban đầu lỗi Name, nhưng khi chọn
chọn Options ---> chọn Enable this content thì nó chạy ra đúng kết quả===>code của bạn ko sai một chút nào cả. bạn xem file minh gửi xem sao.
chú ý, đối với 2007 khi dùng phải kích vào chọn Options ---> chọn Enable this content thì mới chạy được kết quả đúng. Có khi nào bạn đã chỉnh sai trong Trust center không nhỉ, bên mình file bạn gửi chạy ok.
 
Huy cường cái file này chạy vẫn được mà, mình tải về ban đầu lỗi Name, nhưng khi chọn
chọn Options ---> chọn Enable this content thì nó chạy ra đúng kết quả===>code của bạn ko sai một chút nào cả. bạn xem file minh gửi xem sao.
chú ý, đối với 2007 khi dùng phải kích vào chọn Options ---> chọn Enable this content thì mới chạy được kết quả đúng. Có khi nào bạn đã chỉnh sai trong Trust center không nhỉ, bên mình file bạn gửi chạy ok.
Mình chọn Enable this content rồi nhưng vẫn bị lỗi NAME và Alt+F11 thi không hiện ra cửa sổ để xem mã code được. Tôi đoán là do đã thiết lập chặn macro khi cài đặt office nên phải seting trong Trust center nhưng chưa biết seting như thế nào để xem và dùng được code của bạn nữa.
 
Mình chọn Enable this content rồi nhưng vẫn bị lỗi NAME và Alt+F11 thi không hiện ra cửa sổ để xem mã code được. Tôi đoán là do đã thiết lập chặn macro khi cài đặt office nên phải seting trong Trust center nhưng chưa biết seting như thế nào để xem và dùng được code của bạn nữa.
Mình chọn Enable this content nhưng vẫn ko được.
Trong Trust Center mình thiết lập vậy nè:

1-2.png
 
Mình chọn Enable this content rồi nhưng vẫn bị lỗi NAME và Alt+F11 thi không hiện ra cửa sổ để xem mã code được. Tôi đoán là do đã thiết lập chặn macro khi cài đặt office nên phải seting trong Trust center nhưng chưa biết seting như thế nào để xem và dùng được code của bạn nữa.
Làm gì có, tôi đang thử trên Excel 2007 đây ---> Chạy bình thường
Chắc các bạn sai phần cài đặt Security ở chổ nào đó ấy chứ

attachment.php
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    54.1 KB · Đọc: 314
Làm gì có, tôi đang thử trên Excel 2007 đây ---> Chạy bình thường
Chắc các bạn sai phần cài đặt Security ở chổ nào đó ấy chứ
Tôi biết là do setting trong Trust center nhưng chưa biết set như thế nào cho đúng để có thể mở xem và dùng được. Nhờ các cao thủ chỉ giúp với. Thanks.
 
Chỉnh sửa lần cuối bởi điều hành viên:

File đính kèm

  • untitled.JPG
    untitled.JPG
    12.8 KB · Đọc: 314
Bạn click phải vào tên sheet có nhìn thấy chữ View Code không?

attachment.php
Tôi click phải chuột vào sheet hiện thời thì dòng view code bị mờ, không kích hoạt được. Không biết còn phần mềm nào khác chặn macro nữa không mà làm như bạn nói rồi vẫn không được?
 
Tôi click phải chuột vào sheet hiện thời thì dòng view code bị mờ, không kích hoạt được. Không biết còn phần mềm nào khác chặn macro nữa không mà làm như bạn nói rồi vẫn không được?
Tình nghi lớn nhất: Excel của bạn đã bị khóa chế độ View code (chứ chẳng liên quan gì đến code Đổi số)
Để kiểm tra bạn mở 1 file Excel trắng rồi Alt + F11 xem thử (hoặc click phải lên sheet xem thử mục View code có bị mờ hay không?_
Nếu thật sự máy bạn đã bị khóa View code toàn bộ thì phải dùng code để phục hồi lại ---> Bạn kiểm tra trước đi, tôi sẽ tìm lại xem bài viết về vấn đề này nằm ở đâu rồi gữi link cho bạn
 
Em đã làm như các bác nói nhưng vẫn không được. Khi e mở file ra nó báo thế này:

17-12-20093-25-25PM.png


Ở hình 1 có dòng chữ màu xanh C:\User.... Nếu bấm vào đó nó hiện ra như sau (hình như là nó báo lỗi):

17-12-20093-31-05PM.png


Bấm chuột phải vào tên sheet nhưng không thể View Code được:

17-12-20093-42-46PM.png


Mong các bác giúp em
Thanks...%#^#$
 
Tình nghi lớn nhất: Excel của bạn đã bị khóa chế độ View code (chứ chẳng liên quan gì đến code Đổi số)
Để kiểm tra bạn mở 1 file Excel trắng rồi Alt + F11 xem thử (hoặc click phải lên sheet xem thử mục View code có bị mờ hay không?_
Nếu thật sự máy bạn đã bị khóa View code toàn bộ thì phải dùng code để phục hồi lại ---> Bạn kiểm tra trước đi, tôi sẽ tìm lại xem bài viết về vấn đề này nằm ở đâu rồi gữi link cho bạn
Đúng là tại 1 book mới dòng view code cũng bị mờ. Bạn giúp tôi cách khắc phục nhé. Thanks. Trường hợp của tôi giống y hệt của bạn huycuongxd mô tả.
 
Lần chỉnh sửa cuối:
Đúng là tại 1 book mới dòng view code cũng bị mờ. Bạn giúp tôi cách khắc phục nhé. Thanks
Tôi gữi file này cho 2 bạn... Các bạn tiến hành làm như sau:
- Mở file rồi bấm nút nút Enable View code
- Đóng toàn bộ Excel lại
- Mở file lại lần nữa rồi Alt + F11
(không chắc lắm nhưng cứ thử xem ---> Đương nhiên muốn chạy code phải Enable This contents nha)
 

File đính kèm

Web KT

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

Back
Top Bottom