B
Bandit
Guest
Chào Anh Chị
Em có lấy một Code VBA đọc số tiền trong tiếng Anh trên mạng về, nhưng có một vài chỗ không đúng như ý muốn. Và em không thể chỉnh sửa do không biết về VBA. Em trình bày vấn đề và mong anh chị có thể giúp đỡ.
Đây là Code:
Và đây là hình ảnh khi sử dụng Code và mong muốn chỉnh sửa Code cho phù hợp của em.
File đính kèm ở Link này:
Add-in đính kèm:
Không biết cách trình bày của em như thế có gây khó hiểu cho các anh chị không, mong các anh chị thông cảm và góp ý thêm
Em xin chân thành cảm ơn.
Em có lấy một Code VBA đọc số tiền trong tiếng Anh trên mạng về, nhưng có một vài chỗ không đúng như ý muốn. Và em không thể chỉnh sửa do không biết về VBA. Em trình bày vấn đề và mong anh chị có thể giúp đỡ.
Đây là Code:
Mã:
Function USD(ByVal pNumber)
Dim Dollars, Cents
arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
pNumber = Trim(Str(pNumber))
xDecimal = InStr(pNumber, ".")
If xDecimal > 0 Then
Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
pNumber = Trim(Left(pNumber, xDecimal - 1))
End If
xIndex = 1
Do While pNumber <> ""
xHundred = ""
xValue = Right(pNumber, 3)
If Val(xValue) <> 0 Then
xValue = Right("000" & xValue, 3)
If Mid(xValue, 1, 1) <> "0" Then
xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
End If
If Mid(xValue, 2, 1) <> "0" Then
xHundred = xHundred & GetTens(Mid(xValue, 2))
Else
xHundred = xHundred & GetDigit(Mid(xValue, 3))
End If
End If
If xHundred <> "" Then
Dollars = xHundred & arr(xIndex) & Dollars
End If
If Len(pNumber) > 3 Then
pNumber = Left(pNumber, Len(pNumber) - 3)
Else
pNumber = ""
End If
xIndex = xIndex + 1
Loop
Select Case Cents
Case ""
Cents = " Only."
Case "One"
Cents = " And One Cent"
Case Else
Cents = " And " & Cents & " Cents Only."
End Select
USD = "U.S. Dollars " & Dollars & Cents
End Function
Function GetTens(pTens)
Dim Result As String
Result = ""
If Val(Left(pTens, 1)) = 1 Then
Select Case Val(pTens)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else
Select Case Val(Left(pTens, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit(Right(pTens, 1))
End If
GetTens = Result
End Function
Function GetDigit(pDigit)
Select Case Val(pDigit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
Bạn cần đăng nhập để thấy hình ảnh
File đính kèm ở Link này:
Bạn cần đăng nhập để thấy link
Add-in đính kèm:
Bạn cần đăng nhập để thấy link
Không biết cách trình bày của em như thế có gây khó hiểu cho các anh chị không, mong các anh chị thông cảm và góp ý thêm
Em xin chân thành cảm ơn.
Sửa lần cuối bởi điều hành viên: