咨询
Q

老师你好,怎样把excel表格里面的数字转换成英文字母?

2023-02-14 16:01
答疑老师

齐红老师

职称:注册会计师;财税讲师

免费咨询老师(3分钟内极速解答)
2023-02-14 16:02

你好   1.创建一个模块: 在SHEET上,右键-》查看代码。选中“模块”-》插入模块。2.写代码:Option Explicit Dim StrNO(19) As String Dim Unit(8) As String Dim StrTens(9) As StringPublic Function NumberToString(Number As Double) As String    Dim Str As String, BeforePoint As String, AfterPoint As String, tmpStr As String    Dim Point As Integer    Dim nBit As Integer    Dim CurString As String    Dim nNumLen As Integer    Dim T As String    Call Init    Str = CStr(Round(Number, 2))     Str = Number    If InStr(1, Str, .) = 0 Then        BeforePoint = Str        AfterPoint =    Else        BeforePoint = Left(Str, InStr(1, Str, .) - 1)        T = Right(Str, Len(Str) - InStr(1, Str, .))        If Len(T) < 2 Then AfterPoint = Val(T) * 10        If Len(T) = 2 Then AfterPoint = Val(T)        If Len(T) > 2 Then AfterPoint = Val(Left(T, 2))    End If    If Len(BeforePoint) > 12 Then        NumberToString = Too Big.        Exit Function    End If    Str =    Do While Len(BeforePoint) > 0        nNumLen = Len(BeforePoint)        If nNumLen Mod 3 = 0 Then            CurString = Left(BeforePoint, 3)            BeforePoint = Right(BeforePoint, nNumLen - 3)        Else            CurString = Left(BeforePoint, (nNumLen Mod 3))            BeforePoint = Right(BeforePoint, nNumLen - (nNumLen Mod 3))        End If        nBit = Len(BeforePoint) / 3        tmpStr = DecodeHundred(CurString)        If (BeforePoint = String(Len(BeforePoint), 0) Or nBit = 0) And Len(CurString) = 3 Then            If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) <> 0 Then                tmpStr = Left(tmpStr, InStr(1, tmpStr, Unit(4)) %2B Len(Unit(4))) %26 Unit(8) %26 %26 Right(tmpStr, Len(tmpStr) - (InStr(1, tmpStr, Unit(4)) %2B Len(Unit(4))))            Else If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) = 0 Then                tmpStr = Unit(8) %26 %26 tmpStr            End If        End If        If nBit = 0 Then            Str = Trim(Str %26 %26 tmpStr)        Else            Str = Trim(Str %26 %26 tmpStr %26 %26 Unit(nBit))        End If        If Left(Str, 3) = Unit(8) Then Str = Trim(Right(Str, Len(Str) - 3))        If BeforePoint = String(Len(BeforePoint), 0) Then Exit Do        ***.print Str    Loop    BeforePoint = Str    If Len(AfterPoint) > 0 Then        AfterPoint = Unit(8) %26 %26 Unit(7) %26 %26 DecodeHundred(AfterPoint) %26 %26 Unit(5)    Else        AfterPoint = Unit(5)    End If    NumberToString = BeforePoint %26 %26 AfterPoint End Function Private Function DecodeHundred(HundredString As String) As String    Dim tmp As Integer    If Len(HundredString) > 0 And Len(HundredString) <= 3 Then        Select Case Len(HundredString)            Case 1                tmp = CInt(HundredString)                If tmp <> 0 Then DecodeHundred = StrNO(tmp)            Case 2                tmp = CInt(HundredString)                If tmp <> 0 Then                    If (tmp < 20) Then                        DecodeHundred = StrNO(tmp)                    Else                        If CInt(Right(HundredString, 1)) = 0 Then                            DecodeHundred = StrTens(Int(tmp / 10))                        Else                            DecodeHundred = StrTens(Int(tmp / 10)) %26 - %26 StrNO(CInt(Right(HundredString, 1)))                        End If                    End If                End If            Case 3                If CInt(Left(HundredString, 1)) <> 0 Then                    DecodeHundred = StrNO(CInt(Left(HundredString, 1))) %26 %26 Unit(4) %26 %26 DecodeHundred(Right(HundredString, 2))                Else                    DecodeHundred = DecodeHundred(Right(HundredString, 2))                End If            Case Else        End Select    End IfEnd Function Private Sub Init()    If StrNO(1) <> One Then        StrNO(1) = One        StrNO(2) = Two        StrNO(3) = Three        StrNO(4) = Four        StrNO(5) = Five        StrNO(6) = Six        StrNO(7) = Seven        StrNO(8) = Eight        StrNO(9) = Nine        StrNO(10) = Ten        StrNO(11) = Eleven        StrNO(12) = Twelve        StrNO(13) = Thirteen        StrNO(14) = Fourteen        StrNO(15) = Fifteen        StrNO(16) = Sixteen        StrNO(17) = Seventeen        StrNO(18) = Eighteen        StrNO(19) = Nineteen        StrTens(1) = Ten        StrTens(2) = Twenty        StrTens(3) = Thirty        StrTens(4) = Forty        StrTens(5) = Fifty        StrTens(6) = Sixty        StrTens(7) = Seventy        StrTens(8) = Eighty        StrTens(9) = Ninety        Unit(1) = Thousand 材?熌??        Unit(2) = Million 材?熌??        Unit(3) = Billion 材?熌??        Unit(4) = Hundred        Unit(5) = Only        Unit(6) = Point        Unit(7) = Cents        Unit(8) = And    End If End Sub保存此代码到本地3.模块中已经定义了函数名称:NumberToString直接当作EXCEL本地函数使用,例如在A1=7,在B1中输入=NumberToString(A1)就可以拉!

头像
快账用户2371 追问 2023-02-14 16:03

好复杂哦,没有简单的函数公式的吗?我就是转换成一个英文字母就好了

头像
快账用户2371 追问 2023-02-14 16:06

我现在表格有 1 0 我只需要把这两个数据变成两个不同的英文字母就好了

头像
齐红老师 解答 2023-02-14 16:11

这个没有,要是替换同一个字母,可以用查找替换。

头像
快账用户2371 追问 2023-02-14 16:14

替换成两个字母没有办法吗?只有用你第一个发来的吗?

头像
齐红老师 解答 2023-02-14 16:47

是的。。就是这个公式。

还没有符合您的答案?立即在线咨询老师 免费咨询老师
咨询
相关问题讨论
你好   1.创建一个模块: 在SHEET上,右键-》查看代码。选中“模块”-》插入模块。2.写代码:Option Explicit Dim StrNO(19) As String Dim Unit(8) As String Dim StrTens(9) As StringPublic Function NumberToString(Number As Double) As String    Dim Str As String, BeforePoint As String, AfterPoint As String, tmpStr As String    Dim Point As Integer    Dim nBit As Integer    Dim CurString As String    Dim nNumLen As Integer    Dim T As String    Call Init    Str = CStr(Round(Number, 2))     Str = Number    If InStr(1, Str, .) = 0 Then        BeforePoint = Str        AfterPoint =    Else        BeforePoint = Left(Str, InStr(1, Str, .) - 1)        T = Right(Str, Len(Str) - InStr(1, Str, .))        If Len(T) < 2 Then AfterPoint = Val(T) * 10        If Len(T) = 2 Then AfterPoint = Val(T)        If Len(T) > 2 Then AfterPoint = Val(Left(T, 2))    End If    If Len(BeforePoint) > 12 Then        NumberToString = Too Big.        Exit Function    End If    Str =    Do While Len(BeforePoint) > 0        nNumLen = Len(BeforePoint)        If nNumLen Mod 3 = 0 Then            CurString = Left(BeforePoint, 3)            BeforePoint = Right(BeforePoint, nNumLen - 3)        Else            CurString = Left(BeforePoint, (nNumLen Mod 3))            BeforePoint = Right(BeforePoint, nNumLen - (nNumLen Mod 3))        End If        nBit = Len(BeforePoint) / 3        tmpStr = DecodeHundred(CurString)        If (BeforePoint = String(Len(BeforePoint), 0) Or nBit = 0) And Len(CurString) = 3 Then            If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) <> 0 Then                tmpStr = Left(tmpStr, InStr(1, tmpStr, Unit(4)) %2B Len(Unit(4))) %26 Unit(8) %26 %26 Right(tmpStr, Len(tmpStr) - (InStr(1, tmpStr, Unit(4)) %2B Len(Unit(4))))            Else If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) = 0 Then                tmpStr = Unit(8) %26 %26 tmpStr            End If        End If        If nBit = 0 Then            Str = Trim(Str %26 %26 tmpStr)        Else            Str = Trim(Str %26 %26 tmpStr %26 %26 Unit(nBit))        End If        If Left(Str, 3) = Unit(8) Then Str = Trim(Right(Str, Len(Str) - 3))        If BeforePoint = String(Len(BeforePoint), 0) Then Exit Do        ***.print Str    Loop    BeforePoint = Str    If Len(AfterPoint) > 0 Then        AfterPoint = Unit(8) %26 %26 Unit(7) %26 %26 DecodeHundred(AfterPoint) %26 %26 Unit(5)    Else        AfterPoint = Unit(5)    End If    NumberToString = BeforePoint %26 %26 AfterPoint End Function Private Function DecodeHundred(HundredString As String) As String    Dim tmp As Integer    If Len(HundredString) > 0 And Len(HundredString) <= 3 Then        Select Case Len(HundredString)            Case 1                tmp = CInt(HundredString)                If tmp <> 0 Then DecodeHundred = StrNO(tmp)            Case 2                tmp = CInt(HundredString)                If tmp <> 0 Then                    If (tmp < 20) Then                        DecodeHundred = StrNO(tmp)                    Else                        If CInt(Right(HundredString, 1)) = 0 Then                            DecodeHundred = StrTens(Int(tmp / 10))                        Else                            DecodeHundred = StrTens(Int(tmp / 10)) %26 - %26 StrNO(CInt(Right(HundredString, 1)))                        End If                    End If                End If            Case 3                If CInt(Left(HundredString, 1)) <> 0 Then                    DecodeHundred = StrNO(CInt(Left(HundredString, 1))) %26 %26 Unit(4) %26 %26 DecodeHundred(Right(HundredString, 2))                Else                    DecodeHundred = DecodeHundred(Right(HundredString, 2))                End If            Case Else        End Select    End IfEnd Function Private Sub Init()    If StrNO(1) <> One Then        StrNO(1) = One        StrNO(2) = Two        StrNO(3) = Three        StrNO(4) = Four        StrNO(5) = Five        StrNO(6) = Six        StrNO(7) = Seven        StrNO(8) = Eight        StrNO(9) = Nine        StrNO(10) = Ten        StrNO(11) = Eleven        StrNO(12) = Twelve        StrNO(13) = Thirteen        StrNO(14) = Fourteen        StrNO(15) = Fifteen        StrNO(16) = Sixteen        StrNO(17) = Seventeen        StrNO(18) = Eighteen        StrNO(19) = Nineteen        StrTens(1) = Ten        StrTens(2) = Twenty        StrTens(3) = Thirty        StrTens(4) = Forty        StrTens(5) = Fifty        StrTens(6) = Sixty        StrTens(7) = Seventy        StrTens(8) = Eighty        StrTens(9) = Ninety        Unit(1) = Thousand 材?熌??        Unit(2) = Million 材?熌??        Unit(3) = Billion 材?熌??        Unit(4) = Hundred        Unit(5) = Only        Unit(6) = Point        Unit(7) = Cents        Unit(8) = And    End If End Sub保存此代码到本地3.模块中已经定义了函数名称:NumberToString直接当作EXCEL本地函数使用,例如在A1=7,在B1中输入=NumberToString(A1)就可以拉!
2023-02-14
直接复制到EXCEL中就行了哈
2022-03-13
https://jingyan.baidu.com/article/2c8c281d7835580008252a3e.html 可参考该链接,希望对你有所帮助
2022-06-21
你好 打开word,然后依次点击文件-另存为-选择文件类型-保存,选择xls格式
2022-03-13
您好!您可以用分列https://jingyan.baidu.com/article/9c69d48fe51dcf13c9024e0b.html
2021-04-07
相关问题
相关资讯

领取会员

亲爱的学员你好,微信扫码加老师领取会员账号,免费学习课程及提问!

微信扫码加老师开通会员

在线提问累计解决68456个问题

齐红老师 | 官方答疑老师

职称:注册会计师,税务师

亲爱的学员你好,我是来自快账的齐红老师,很高兴为你服务,请问有什么可以帮助你的吗?

您的问题已提交成功,老师正在解答~

微信扫描下方的小程序码,可方便地进行更多提问!

会计问小程序

该手机号码已注册,可微信扫描下方的小程序进行提问
会计问小程序
会计问小程序
×