首页 电脑 电脑学堂 查看内容

VBS 数字转英文代码

2009-9-23 15:41 890 0

摘要:   Excel 中将数值转换为英文单词   如何创建名为 SpellNumber 的示例函数   启动 Microsoft Excel。   按 Alt+F11 启动 Visual Basic ...

  Excel 中将数值转换为英文单词   如何创建名为 SpellNumber 的示例函数   启动 Microsoft Excel。   按 Alt+F11 启动 Visual Basic 编辑器。   在“插入”菜单上,单击“模块”。   在模块表中键入下面的代码。   代码如下:   Option Explicit   'Main Function   Function SpellNumber(ByVal MyNumber)   Dim Dollars, Cents, Temp   Dim DecimalPlace, Count   ReDim Place(9) As String   Place(2) = " Thousand "   Place(3) = " Million "   Place(4) = " Billion "   Place(5) = " Trillion "   ' String representation of amount.   MyNumber = Trim(Str(MyNumber))   ' Position of decimal place 0 if none.   DecimalPlace = InStr(MyNumber, ".")   ' Convert cents and set MyNumber to dollar amount.   If DecimalPlace > 0 Then   Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _   "00", 2))   MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))   End If   Count = 1   Do While MyNumber <> ""   Temp = GetHundreds(Right(MyNumber, 3))   If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars   If Len(MyNumber) > 3 Then   MyNumber = Left(MyNumber, Len(MyNumber) - 3)   Else   MyNumber = ""   End If   Count = Count + 1   Loop   Select Case Dollars   Case ""   Dollars = "No Dollars"   Case "One"   Dollars = "One Dollar"   Case Else   Dollars = Dollars & " Dollars"   End Select   Select Case Cents   Case ""   Cents = " and No Cents"   Case "One"   Cents = " and One Cent"   Case Else   Cents = " and " & Cents & " Cents"   End Select   SpellNumber = Dollars & Cents   End Function   ' Converts a number from 100-999 into text   Function GetHundreds(ByVal MyNumber)   Dim Result As String   If Val(MyNumber) = 0 Then Exit Function   MyNumber = Right("000" & MyNumber, 3)   ' Convert the hundreds place.   If Mid(MyNumber, 1, 1) <> "0" Then   Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "   End If   ' Convert the tens and ones place.   If Mid(MyNumber, 2, 1) <> "0" Then   Result = Result & GetTens(Mid(MyNumber, 2))   Else   Result = Result & GetDigit(Mid(MyNumber, 3))   End If   GetHundreds = Result   End Function   ' Converts a number from 10 to 99 into text.   Function GetTens(TensText)   Dim Result As String   Result = "" ' Null out the temporary function value.   If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...   Select Case Val(TensText)   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 ' If value between 20-99...   Select Case Val(Left(TensText, 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(TensText, 1)) ' Retrieve ones place.   End If   GetTens = Result   End Function   ' Converts a number from 1 to 9 into text.   Function GetDigit(Digit)   Select Case Val(Digit)   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   如何使用 SpellNumber 示例函数   要使用该示例函数将某数字更改为书面文本,请使用下列示例中演示的方法之一:   回到顶端   方法 1:直接输入   通过将下面的公式输入单元格中,可以将 32.50 更改为“Thirty Two Dollars and Fifty Cents”:   =SpellNumber(32.50)   回到顶端   方法 2:单元格引用   可以引用工作簿中的其他单元格。例如,在单元格 A1 中输入数字 32.50,然后在另一单元格中键入下面的公式:   =SpellNumber(A1)   回到顶端   方法 3:粘贴函数或插入函数   可以使用“粘贴函数”(在 Excel 2000 和 Excel 2002 中)或“插入函数”(在 Excel 2003 中)来将自定义函数输入工作表中。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部