Suma trong cuirsive

Nội dung

Dưới đây, bạn sẽ tìm thấy một hàm do người dùng xác định sẵn trong VBA để dịch bất kỳ số nào từ 0 để 9 thành biểu diễn văn bản của nó, tức là số lượng bằng chữ. Trước khi sử dụng, chức năng này phải được thêm vào sách của bạn. Đối với điều này:

  1. nhấn phím tắt ALT + F11để mở Visual Basic Editor
  2. thêm mô-đun trống mới qua menu Chèn - Mô-đun
  3. sao chép và dán văn bản của hàm này vào đó:
Hàm SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Mảng("", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín") Nums2 = Mảng("", "mười", "hai mươi", "ba mươi", "bốn mươi", "năm mươi", "sáu mươi", "bảy mươi", _ "tám mươi ", "chín mươi") Nums3 = Array("", "một trăm", "hai trăm", "ba trăm", "bốn trăm", "năm trăm", "sáu trăm", "bảy trăm", _ " tám trăm", "chín trăm") Nums4 = Mảng("", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín ") Nums5 = Array("mười " , "mười một", "mười hai", "mười ba", "mười bốn", _ "mười lăm", "mười sáu", "mười bảy", "mười tám", "mười chín") Nếu n < = 0 Then SUMWRITE = "zero" Thoát khỏi chức năng Kết thúc Nếu 'chia số thành các chữ số bằng cách sử dụng hàm trợ giúp Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class (n, 4) dectys = Class(n , 5) sottys = Class(n, 6) mil = Class(n, 7) decmil= Class(n, 8) 'kiểm tra hàng triệu Chọn trường hợp decmil Trường hợp 1 mil_txt = Nums5(mil ) & "millions " Truy cập www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 1 mil_txt = Nums1(mil) & "million " Case 2, 3, 4 mil_txt = Nums1(mil) & "million" Trường hợp 5 Đến 20 mil_txt = Nums1(mil) & "millions " Kết thúc Chọn www: sottys_txt = Nums3(sottys) ' kiểm tra hàng nghìn Chọn Trường hợp dectys Trường hợp 1 tys_txt = Nums5(tys) & "nghìn " GoTo eee Trường hợp 2 Đến 9 dectys_txt = Nums2(dectys) Kết thúc Chọn Chọn Trường hợp tys Trường hợp 0 ​​Nếu dectys > 0 Thì tys_txt = Nums4(tys) & "nghìn " Trường hợp 1 tys_txt = Nums4(tys) & "ngàn" Trường hợp 2, 3, 4 tys_txt = Nums4(tys) & "nghìn " Trường hợp 5 Đến 9 tys_txt = Nums4(tys) & "nghìn " Kết thúc Chọn Nếu dectys = 0 Và tys = 0 Và sottys <> 0 Thì sottys_txt = sottys_txt & "nghìn" eee: sot_txt = Nums3(sot)' kiểm tra chục Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums1 (ed) rrr: 'tạo thành hàng cuối cùng với SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt Kết thúc Hàm ' hàm trợ giúp để trích xuất từ ​​số chữ số Hàm riêng Lớp(M, I) Lớp = Int(Int(M - (10 ^ I) * Int(M / ( 10^I)))/10^(I - 1)) Chức năng kết thúc    

Lưu tệp (nếu bạn có Excel 2007 hoặc 2010, thì loại tệp phải được bật macro, tức là định dạng xlsm!) Và quay lại Excel. Giờ đây, bạn có thể chèn hàm đã tạo vào bất kỳ ô nào của trang tính theo cách thông thường - thông qua trình hướng dẫn hàm (nút fx trong thanh công thức, danh mục Đã xác định người dùng) hoặc đơn giản bằng cách nhập nó vào ô theo cách thủ công và chỉ định ô với số tiền làm đối số:

Nếu bạn cần thêm xu vào văn bản đã nhận, thì bạn có thể sử dụng cấu trúc phức tạp hơn một chút:

 u3d SUM TRONG VIẾT (A3) & ”chà. “& TEXT ((A3-INTEGER (A100)) * 00;” XNUMX ″) & ”cảnh sát.” 

u3d SUM TRONG VIẾT (A3) & ”chà. “& TEXT ((A3-INT (A100)) * 00;” XNUMX ″) & ”cảnh sát.”

Sau đó, ví dụ: đối với số 35,15, kết quả của hàm sẽ giống như “ba mươi lăm rúp. 15 kop. ”

 

  • Phiên bản chức năng mạnh mẽ hơn với rúp và kopecks bằng / tiếng Anh từ tiện ích bổ sung PLEX
  • Macro là gì, chèn mã macro ở đâu, cách sử dụng chúng

 

Bình luận