Nhờ giúp Macro Funtions trong OpenOffice. (1 người xem)

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

Người dùng đang xem chủ đề này

ntt2006

Thành viên mới
Tham gia
14/5/08
Bài viết
1
Được thích
0
Chào các bạn!
Mình đang gặp khó khăn xin được sự trợ giúp của các bạn.
Trước đây mình sử dụng MS Office thì có sử dụng macro để chuyển đổi "Số" thành "Chữ" trong bản tính excell trong việc làm báo cáo tài chính và chữ thể hiện là tiếng Anh, tuy nhiên có sử dụng vnđ nên có dùng hàm : =USD(A1,"vnđ",2,,FALSE) thì kết quả sẽ cho ra tương ứng là nếu là usd thì bình thường còn nếu là vnđ thì sẽ thêm "vnđ only".

Nhưng nay do yêu cầu công việc thì mình đã chuyển sang dùng OpenOffice thì gặp rắc rối, mình đã thử viết macro như sau

Function USD(AMT)
Dim ToRead, Chuoi, Nhom, Word As String
Dim I, J As integer , W, X, Y, Z As Double
Dim DonVi, HChuc, Khung
If AMT = 0 Then
ToRead = "None"
Else
DonVi = Array("None", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen")
HChuc = Array("None", "None", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety")
Khung = Array("None", "billion", "million", "thousand", "dollars", "cents")
If AMT < 0 Then
ToRead = "Minus" & Space(1)
Else
ToRead = Space(0)
End If
Chuoi = Format(Abs(AMT), "############.00")
Chuoi = Right(Space(12) & Chuoi, 15)
For I = 1 To 5
Nhom = Mid(Chuoi, I * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If I = 4 And Abs(AMT) > 1 Then
Word = "dollars" & Space(1)
Else
Word = Space(0)
End If
Case ".00"
Word = "only"
Case Else
X = Val(Left(Nhom, 1))
Y = Val(Mid(Nhom, 2, 1))
Z = Val(Right(Nhom, 1))
W = Val(Right(Nhom, 2))
If X = 0 Then
Word = Space(0)
Else
Word = DonVi(X) & Space(1) & "hundred" & Space(1)
If W > 0 And W < 21 Then
Word = Word & "and" & Space(1)
End If
End If
If I = 5 And Abs(AMT) > 1 Then
Word = "and" & Space(1) & Word
End If
If W < 20 And W > 0 Then
Word = Word & DonVi(W) & Space(1)
Else
If W >= 20 Then
Word = Word & HChuc(Y) & Space(1)
If Z > 0 Then
Word = Word & DonVi(Z) & Space(1)
End If
End If
End If
Word = Word & Khung(I) & Space(1)
End Select
ToRead = ToRead & Word
End If
Next I
End If
USD = UCase(Left(ToRead, 1)) & Mid(ToRead, 2)
End Function

Ví dụ cho : A1=100
thì kết quả khi dùng cú pháp : =USD(A1) cho ra đúng : one hundred dollars only
Nhưng nếu mình muốn dùng hàm giống excel =USD(A1,"vnđ",2,,FALSE) khi A1= 100 vnd thì báo lổi.

Mong các bạn giúp mình chỉnh sửa dùm macro và chỉ bảo thêm.
Thank các bạn.
 
Web KT

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

Back
Top Bottom