Đọc số bằng chữ dùng Name

Liên hệ QC
Anh Tuân nêu lên 2 vấn đề lớn mà giải pháp này gặp phải. Mặt mạnh của giải pháp này là không dùng VBA và theo mình biết thì có rất nhiều cty không cho marco trong file thực thi hoặc luôn đặt chế độ diệt macro trong các PM diệt virus.

Macro4 được phép thực thi trong các phiên bản Office 2003 về trước (dù set Security là High). Riêng Office 2007 xem Macro4 là Macro và có sự kiểm soát chặt. Do vậy phạm vi ứng dụng của giải pháp này nhỏ hơn 1 tí nữa, nếu ai có nhu cầu và gặp các ràng buộc như nêu trên thì có thể áp dụng.

Hướng giải quyết cho việc bảo trì Name và sửa đổi có thể là:
1. Đặt Name dùng scope toàn cục (Workbook) và lưu thành 1 file riêng cất đó, ví dụ đặt tên là MNDocSo.
2. Mở workbook đích (cần chuyển Name sang) và mở file chứa Name lên và dùng lệnh Move or Copy... để tạo 1 bản sao 1 sheet trong file nguồn sang file đích. Các Name sẽ theo sheet được copy sang file đích và ta có thể sử dụng.

Khi bảo trì thì chỉnh sửa Name trong file lưu trữ sau đó thực hiện lệnh Move or Copy sang các file có sử dụng tính năng này. Các name trùng tên sẽ tự động được ghi đè lên bằng Name của file nguồn.

TP.
 
Đây chính là một phần quan trọng mà những người mới cần biết để sử dụng như thế nào cho tốt.

Anh Tuân nêu lên 2 vấn đề lớn mà giải pháp này gặp phải. Mặt mạnh của giải pháp này là không dùng VBA và theo mình biết thì có rất nhiều cty không cho marco trong file thực thi hoặc luôn đặt chế độ diệt macro trong các PM diệt virus.

Macro4 được phép thực thi trong các phiên bản Office 2003 về trước (dù set Security là High). Riêng Office 2007 xem Macro4 là Macro và có sự kiểm soát chặt. Do vậy phạm vi ứng dụng của giải pháp này nhỏ hơn 1 tí nữa, nếu ai có nhu cầu và gặp các ràng buộc như nêu trên thì có thể áp dụng.

Hướng giải quyết cho việc bảo trì Name và sửa đổi có thể là:
1. Đặt Name dùng scope toàn cục (Workbook) và lưu thành 1 file riêng cất đó, ví dụ đặt tên là MNDocSo.
2. Mở workbook đích (cần chuyển Name sang) và mở file chứa Name lên và dùng lệnh Move or Copy... để tạo 1 bản sao 1 sheet trong file nguồn sang file đích. Các Name sẽ theo sheet được copy sang file đích và ta có thể sử dụng.

Khi bảo trì thì chỉnh sửa Name trong file lưu trữ sau đó thực hiện lệnh Move or Copy sang các file có sử dụng tính năng này. Các name trùng tên sẽ tự động được ghi đè lên bằng Name của file nguồn.

TP.
 
Chúng ta phải đặt file này ở mức độ sáng tạo của nó, chú nếu để tính toán thì vẫn có thể dùng VBA.
 
Các bạn hãy chạy file này trên Excel2007 rồi đưa ra ý kiến nhé...
 
Các bạn hãy chạy file này trên Excel2007 rồi đưa ra ý kiến nhé...

máy em không cài OF2007 nên không thử xem nó như thế nào để tìm cách khắc phục, nên nhờ các Bác hỗ trợ vậy
Em đang viết tiếp đọc số USD bằng tiếng Anh và tiếng Việt, xong em sẽ post lên tiếp
 
Các bạn những ai dùng Office2007 thử lại file này xem còn lổi ko nha!
Chú ý: Nếu hàm trả về là "Số không đúng" cho mọi number thì các bạn hãy xem lại mục Excel Options.. rất có thể phần macro đã bị Disable
ANH TUẤN
 

File đính kèm

Các bạn những ai dùng Office2007 thử lại file này xem còn lổi ko nha!
Chú ý: Nếu hàm trả về là "Số không đúng" cho mọi number thì các bạn hãy xem lại mục Excel Options.. rất có thể phần macro đã bị Disable
ANH TUẤN
Đã test hiển thị ban đầu ko có lỗi (tất nhiên phải enable macro trong Trust center settings)
Nhưng thay đổi giá trị tại B11 hoặc copy công thức cho các ô khác thì xuất hiện lỗi.

9267ee_loi.jpg
 
Lần chỉnh sửa cuối:
Các bạn những ai dùng Office2007 thử lại file này xem còn lổi ko nha!
Chú ý: Nếu hàm trả về là "Số không đúng" cho mọi number thì các bạn hãy xem lại mục Excel Options.. rất có thể phần macro đã bị Disable
ANH TUẤN
Còn tôi thì vừa mới Open file ra đã gặp cái báo lỗi y như PhamNhuKhang gặp, chưa kịp làm gì với nó!
Tuy nhiên liếc ra phía sau cái bảng báo lỗi thì thấy có hiện lên dòng chữ đọc con số 123456789 ra chữ, nghĩa là cái hàm của Anh Tuấn có chạy đó, nhưng không hiểu sao Excel bị xung đột!
 
Chả hiểu sao file này tôi dùng đủ các kiểu, thậm chí tạo hẳn 1 file mới trên Excel2007 mà vẫn lổi... Lạ thật!
Nhưng file khác dùng macro4 vẫn chạy dc trên Excel2007 cơ mà!
ANH TUẤN
 
Chả hiểu sao file này tôi dùng đủ các kiểu, thậm chí tạo hẳn 1 file mới trên Excel2007 mà vẫn lổi... Lạ thật!
Nhưng file khác dùng macro4 vẫn chạy dc trên Excel2007 cơ mà!
ANH TUẤN

Theo như em test thì Macro4 sẽ mất tác dụng trong sheet nào bị protect, các sheet khác vẫn bình thường
 
Đọc số USD

Gửi các bạn file đọc số USD.
Các bạn xem và góp ý cho mình về lỗi chính tả nha. Cám ơn
 

File đính kèm

File USD này cũng chung số phận với VND.. nghĩa là ko chạy dc trên Excel2007
Tôi xin lưu ý rằng tôi dùng Portable_Office2007... nhưng ai đã cài đặt bộ Office2007 này đàng hoàng xin thử xem thế nào nhé
 
Mình thấy "kiểu đọc" này hay hay nhưng đụng vào thì lại báo lỗi không sử dụng được.
Tuy nhiên nếu để ứng dụng thì bấy lâu nay mình xài trộm vntools (của ai không rỏ - xin lỗi nghen), có thể nói rất tiện và rất dễ áp dụng cho mọi cell, mọi workbook và tốc độ không thua kém ai...
Công thức đọc như thế này =vnd('cell muốn đọc',True/False)
 
Lần chỉnh sửa cuối:
Mình thấy "kiểu đọc" này hay hay nhưng đụng vào thì lại báo lỗi không sử dụng được.
Tuy nhiên nếu để ứng dụng thì bấy lâu nay mình xài trộm vntools (của ai không rỏ - xin lỗi nghen), có thể nói rất tiện và rất dễ áp dụng cho mọi cell, mọi workbook và tốc độ không thua kém ai...
Công thức đọc như thế này =vnd('cell muốn đọc',True/False)

Đúng là file của mình báo lỗi đối với OF2007, và chưa tìm ra cách khắc phục, nhưng với Excel 2003 thì chạy vẫn tốt mà.
Về ứng dụng thực tiễn thì bạn tham khảo bài đọc số của Thầy Phamduylong rất hay.
Thân!
 
Đúng là file của mình báo lỗi đối với OF2007, và chưa tìm ra cách khắc phục, nhưng với Excel 2003 thì chạy vẫn tốt mà.
Tôi nghĩ trong các thủ tục của bạn có dùng một vài thuộc tính hay phương thức mà Excel 2007 không còn hổ trợ. Bạn thử test chạy từng bước xem sao?

Vbavn
 
Chào bạn,

Hình như bạn nên gửi thêm phần dán của bạn sau đó các máy sẽ nhận được bình thường,

Cám ơn bạn!!
 
Các bác rất thông mình và sáng tạo...!
nhung cho tôi hỏi nếu muốn copy name file này sang file khác thì làm cách nao ?
 
Các bác rất thông mình và sáng tạo...!
nhung cho tôi hỏi nếu muốn copy name file này sang file khác thì làm cách nao ?
1> Bạn mở file có chứa name đọc số, đồng thời mở file của bạn lên!
2> Qua file đọc số, clịck phải trên sheet tab, chọn Move or copy, khung To book chọn file của bạn, check vào ô Create a copy
3> Đóng file đọc số
4> Trong file của bạn hảy xóa sheet vừa đuợc move sang
vậy là tất cả các name của file đọc số đã đựoc chuyển hết sang file của bạn rồi đấy
Thử bằng cách gỏ vào 1 cell nào đó công thức:
=IF(ROW(cell cần đọc số),VND)
Chúc thành công
 
Cảm ơn bạn!
Tôi đã dùng thử, rất hay và sáng tạo. Tôi được biết thêm một cách lập hàm bằng name.
Trước đây, do nhu cầu, tôi cũng đã tự lập ra một hàm đọc chữ. Thật tình cờ, cách đọc của bạn rất giống cách đọc của tôi, mặc dù phương pháp đọc là khác nhau.
Nhân đây tôi cũng muốn gửi lên đây giải pháp của tôi hầu mong bạn có thể tham khảo.
Cách của tôi là lập hàm, tạo ra file add-in. Nên để sử dụng, các bạn down file đính kèm, giải nén vào một thư mục bất kì để ra file add-in. Sau đó trong Tools->Add-in các bạn browse đến thư mục đã giải và chọn file docchu.xla. Như vậy bạn đã có thể sử dụng hàm này.
Cú pháp là =bangchu(thamchieu)
ví dụ: A1 = 1205
A2 = bangchu(A1) cho ra kết quả Một nghìn hai trăm linh năm
A2 = bangchu(A1) & " đồng." cho ra kết quả Một nghìn hai trăm linh năm đồng.
Bạn có thể so sánh tốc độc đọc của hai phương pháp bằng cách copy khoảng 10000 dòng và có nhận xét của riêng mình. Ngoài ra cách này có thể đọc được tới 15 chữ số.
Cảm ơn các bạn đã quan tâm.
 

File đính kèm

Web KT

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

Back
Top Bottom