Excel软件
新建如图所示的Excel表格,我们讲吧A列中的数字用英文的形式转换到B列中。
按住“Alt+F11”打开VBA编辑器,如图所示。
在VBA编辑器中单击菜单栏“插入”——模块,如图所示。
在打开的模块中输入如下代码:Option ExplicitFunction 数字转英文(ByVal MyNumber)Dim Dollars, Cents, TempDim DecimalPlace, CountReDim Place(9) As StringPlace(2) = ' Thousand 'Place(3) = ' Million 'Place(4) = ' Billion 'Place(5) = ' Trillion 'MyNumber = Trim(Str(MyNumber))DecimalPlace = InStr(MyNumber, '.')If DecimalPlace > 0 ThenCents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ '00', 2))MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))End IfCount = 1Do While MyNumber <> ''Temp = GetHundreds(Right(MyNumber, 3))If Temp <> '' Then Dollars = Temp & Place(Count) & DollarsIf Len(MyNumber) > 3 ThenMyNumber = Left(MyNumber, Len(MyNumber) - 3)ElseMyNumber = ''End IfCount = Count + 1LoopSelect Case DollarsCase ''Dollars = 'No Dollars'Case 'One'Dollars = 'One Dollar'Case ElseDollars = Dollars & ' Dollars'End SelectSelect Case CentsCase ''Cents = ' and No Cents'Case 'One'Cents = ' and One Cent'Case ElseCents = ' and ' & Cents & ' Cents'End Select数字转英文 = Dollars & CentsEnd FunctionFunction GetHundreds(ByVal MyNumber)Dim Result As StringIf Val(MyNumber) = 0 Then Exit FunctionMyNumber = Right('000' & MyNumber, 3)If Mid(MyNumber, 1, 1) <> '0' ThenResult = GetDigit(Mid(MyNumber, 1, 1)) & ' Hundred 'End IfIf Mid(MyNumber, 2, 1) <> '0' ThenResult = Result & GetTens(Mid(MyNumber, 2))ElseResult = Result & GetDigit(Mid(MyNumber, 3))End IfGetHundreds = ResultEnd FunctionFunction GetTens(TensText)Dim Result As StringResult = ''If Val(Left(TensText, 1)) = 1 ThenSelect 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 ElseEnd SelectElseSelect 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 ElseEnd SelectResult = Result & GetDigit _(Right(TensText, 1))End IfGetTens = ResultEnd Function 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 SelectEnd Function
现在回到Excel表格中,单击“B1”单元格,在菜单栏选择“插入”——函数。
在打开的“插入函数”对话框的“或选择类别”中选择“用户定义”,然后选择函数“数字转英文”,单击“确定”按钮。
在打开的“函数参数”对话框中输入“A1”,单击“确定”按钮。
然后用填充手柄向下填充公式,现在就可以看到转换好的英文了。