作业帮 > 综合 > 作业

如何在excel中直接将A1的数字在B1中直接用英文大写表示

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/30 08:08:17
如何在excel中直接将A1的数字在B1中直接用英文大写表示
麻烦啦,在线等啊,份全部给啦
要翻译成英文哦大写的,比如100,ONE HUNDRED ONLY
如何在excel中直接将A1的数字在B1中直接用英文大写表示
ALF+F11 然后点菜单-插入,将以下代码复制到跳出的窗口里:Function NumbToEnglish(ByVal MyNumber)         Dim Temp         Dim Inte, Dec         Dim DecimalPlace, Count         ReDim Place(9) As String         Place(2) = " Thousand "         Place(3) = " Million "         Place(4) = " Billion "         Place(5) = " Trillion "         ' 将数字Mynumber转换成字符串格式,并去掉多余空格         MyNumber = Trim(Str(MyNumber))         ' 查找小数点“.”位置         DecimalPlace = InStr(MyNumber, ".")         ' 如果找到小数点...         If DecimalPlace > 0 Then            ' 转换小数部分            Temp = Len(Mid(MyNumber, DecimalPlace + 1))            Count = 1            Dec = ""            Do While Count - 1 <> Temp            Dec = Dec & " " & ConvertDecimal(Mid(MyNumber, DecimalPlace + Count, 1))            Count = Count + 1            Loop            ' 去掉小数部分,保留剩下的整数部分留做转换            MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))         End If         Count = 1         Do While MyNumber <> ""            ' 将最后的三位数字转换成英文数字            Temp = ConvertHundreds(Right(MyNumber, 3))            If Temp <> "" Then Inte = Temp & Place(Count) & Inte            If Len(MyNumber) > 3 Then               ' 如果整数部分大于三位,再向前移动三位数字重复进行转换               MyNumber = Left(MyNumber, Len(MyNumber) - 3)            Else               MyNumber = ""            End If            Count = Count + 1         Loop                  ' 增加小数点描述         If Dec = "" Then            If Inte = "" Then            Dec = "No Number!"            End If         Else            If Inte = "" Then            Dec = "Zero Point" & Dec            Else            Dec = " Point" & Dec            End If         End If         NumbToEnglish = Inte & Dec      End Function     ' 定义子函数,转换百位数     Private Function ConvertHundreds(ByVal MyNumber)         Dim Result As String         ' 如果数字为空,退出.         If Val(MyNumber) = 0 Then Exit Function         ' 在不满三位数的数字前补"0".         MyNumber = Right("000" & MyNumber, 3)         ' 判断是否有百位数可供转换?         If Left(MyNumber, 1) <> "0" Then            If Right("000" & MyNumber, 2) <> 0 Then            Result = ConvertDigit(Left(MyNumber, 1)) & " Hundred and "            Else            Result = ConvertDigit(Left(MyNumber, 1)) & " Hundred "            End If         End If         ' 判断是否有十位数可供转换?         If Mid(MyNumber, 2, 1) <> "0" Then            Result = Result & ConvertTens(Mid(MyNumber, 2))         Else            ' 如果没有,转换个位数.            Result = Result & ConvertDigit(Mid(MyNumber, 3))         End If         ConvertHundreds = Trim(Result)      End Function      ' 定义子函数,转换十位数      Private Function ConvertTens(ByVal MyTens)         Dim Result As String         ' 判断数字是否在 10 - 19 之间?         If Val(Left(MyTens, 1)) = 1 Then            Select Case Val(MyTens)               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            ' .. 否则,它是介于 20 - 99 之间.            Select Case Val(Left(MyTens, 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            ' 转换其中的个位数.            If Val(Right(MyTens, 1)) = 0 Then            Result = Result & " " & ConvertDigit(Right(MyTens, 1))            Else            Result = Result & "-" & ConvertDigit(Right(MyTens, 1))            End If         End If         ConvertTens = Result     End Function      ' 定义子函数,转换个位数      Private Function ConvertDigit(ByVal MyDigit)         Select Case Val(MyDigit)            Case 1: ConvertDigit = "One"            Case 2: ConvertDigit = "Two"            Case 3: ConvertDigit = "Three"            Case 4: ConvertDigit = "Four"            Case 5: ConvertDigit = "Five"            Case 6: ConvertDigit = "Six"            Case 7: ConvertDigit = "Seven"            Case 8: ConvertDigit = "Eight"            Case 9: ConvertDigit = "Nine"            Case Else: ConvertDigit = ""         End Select      End Function      ' 定义子函数,转换小数部分      Private Function ConvertDecimal(ByVal MyDecimal)         Select Case Val(MyDecimal)            Case 1: ConvertDecimal = "One"            Case 2: ConvertDecimal = "Two"            Case 3: ConvertDecimal = "Three"            Case 4: ConvertDecimal = "Four"            Case 5: ConvertDecimal = "Five"            Case 6: ConvertDecimal = "Six"            Case 7: ConvertDecimal = "Seven"            Case 8: ConvertDecimal = "Eight"            Case 9: ConvertDecimal = "Nine"            Case Else: ConvertDecimal = "Zero"         End Select      End Function      Sub bbb()MsgBox NumbToEnglish(123.31)End Sub然后再按ALF+F11,切换回EXCEL窗口,假如100在A1单元格,你在B1单元格输入 =NUMBTOENGLISH(A1) 最后下拉填充即可。