找了很久,没找到,所以自己编了一个,借鉴了小写转大写的编程思路。
Function AmountDollars(ByVal arg1)
Dim list(10) As String
Dim wavlist As String
list(1) = ""
list(2) = "shi.wav"
list(3) = "bai.wav"
list(4) = "qian.wav"
list(5) = "wan.wav"
list(6) = "shi.wav"
list(7) = "bai.wav"
list(8) = "qian.wav"
list(9) = "yi.wav"
list(10) = "shi.wav"
amounttosay = Trim(arg1) '去前后空格
amounttosay = Replace(amounttosay, ",", "")
aa = Split(amounttosay, ".") '小数点分开
aa1 = aa(0)
If InStr(amounttosay, ".") > 0 Then
aa2 = aa(1)
Else
aa2 = ""
End If
lnP = Len(aa1)
If lnP > 10 Then
Exit Function
End If
For i = 1 To lnP
Tmp = Mid(aa1, i, 1) & Tmp
Next i
For i = 1 To lnP
If Mid(Tmp, i, 1) <> "0" Then
wavlist = Mid(Tmp, i, 1) + ".wav" + "," + list(i) + "," + wavlist
f = 1
Else
If i = 5 Then
If lnP > 8 And Mid(Tmp, 6, 1) <> "0" Or Mid(Tmp, 7, 1) <> "0" Or Mid(Tmp, 8, 1) <> "0" Then
wavlist = "wan.wav" + "," + wavlist
End If
End If
If i = 9 Then
wavlist = "yi.wav" + "," + wavlist
End If
If f Then
wavlist = "0.wav" + "," + wavlist
f = 0
End If
End If
Next i
If aa2 <> "" Then
wavlist = wavlist + "," + "dian.wav"
If Len(aa2) = 1 Then
wavlist = wavlist + "," + aa2 + ".wav"
Else
For i = 1 To 2
wavlist = wavlist + "," + Mid(aa2, i, 1) + ".wav"
Next i
End If
End If
wavlist = wavlist + "," + "dollars.wav"
AmountDollars = Replace(wavlist, "0.wav,wan.wav", "wan.wav")
End Function