Table of contents
在这篇文章中,我将向你展示在Excel 2019、2016、2013和其他版本中把货币数字转换成英文单词的两种快速和免费的方法。
Microsoft Excel是一个计算这个和那个的伟大程序。 它最初是为了处理大型数据阵列而开发的。 然而,它也可以快速有效地创建会计记录,如发票、评估或资产负债表。
在或多或少可靠的支付文件中,有必要将数字与文字形式重复。 伪造打字的数字比手写的数字要难得多。 一些骗子可以试图将3000个数字变成8000个,而将 "3 "秘密替换成 "8 "几乎是不可能的。
因此,你需要的不仅仅是在Excel中把数字转换成文字(如123.45转换成 "一百二十三,四十五"),而是拼出美元和美分(如29.95美元为 "二十九美元和九十九美分"),英镑和便士为英镑,欧元和欧分为欧元,等等。
即使是最新版本的Excel也没有内置的数字拼写工具,更不用说早期的版本了。 但这正是Excel真正优秀的时候。 你可以随时利用公式来改进它的功能,在所有的
组合,VBA宏,或第三方插件。
下面你会发现两种将数字从数字转换为文字的方法
而且,有可能,你可能需要在Excel中把Words转换成Numbers
注意:如果你正在寻找 数字到文本的转换 对于这一点,你可以使用TEXT函数或《如何在Excel中把数字变成文本》中描述的其他一些方法。
SpellNumber VBA宏将数字转换为文字
正如我已经提到的,微软并不想为这项任务增加一个工具。 然而,当他们看到有多少用户需要它时,他们在他们的网站上创建并发布了这个特殊的VBA宏。 这个宏的作用正如它的名字SpellNumber一样。 我遇到的所有其他宏都是基于微软的代码。
你可以找到提到的宏 "spellnumber formula"。 然而,它不是一个公式,而是一个宏函数,或者更精确地说 Excel用户定义函数 (UDF)。
拼写数字选项能够书写美元和美分。 如果你需要不同的货币,你可以改变" 美元 "和" 分 "与你的那个人的名字。
如果你不是一个精通VBA的人,下面你可以找到一份代码。 如果你还是不想或没有时间来整理,请使用这个解决方案。
- 打开你需要拼写数字的工作簿。
- 按Alt+F11键,打开Visual Basic编辑器窗口。
- 如果你有几个书打开了,使用编辑器左上角的项目列表检查需要的工作簿是否处于活动状态(其中一个工作簿元素用蓝色突出显示)。
- 在编辑器菜单中,进入 插入 -> 模块 .
- 你应该看到一个名为YourBook - Module1的窗口,选择下面框架中的所有代码并将其粘贴到这个窗口。
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 " MyNumber = Trim(Str(MyNumber) ) DecimalPlace = InStr(MyNumber, " 。" ) 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 = " OneDollar" 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 GetHundreds( ByVal MyNumber) Dim Result As String If Val( MyNumber) = 0 Then Exit Function MyNumber = Right( "000" & MyNumber,3) ' 转换百位。 If Mid(MyNumber, 1, 1) "0" Then Result = GetDigit(Mid(MyNumber, 1, 1) & " Hundred " End If ' 转换十位和一位。 If Mid(MyNumber, 2, 1) "0" Then Result = Result & GetTens(Mid(MyNumber, 2) Else Result = Result & GetDigit(Mid(MyNumber, 3) End If GetHundreds = Result 结束函数 GetTens(TensText) Dim Result As String Result = ""如果Val(Left(TensText, 1)) = 1 那么 ' 如果数值在10-19之间... 选择案例Val(TensText) 案例10:结果="十" 案例11:结果="十一" 案例12:结果="十二" 案例13:结果="十三" 案例14:结果="十四" 案例15:结果="十五" 案例16:结果="十六" 案例17:结果="十七" 案例18:结果="十八" 案例19:结果="Nineteen" Case Else End Select Else ' If value between 20-99... Select Case Val(Left(TensText, 1)) Case 2: Result = "20 " Case 3: Result = "30 " Case 4: Result = "40 " Case 5: Result = "50 " Case 6: Result = "60 " Case 7: Result = "70 " Case 8: Result = "80 " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1) ) ' RetrieveEnd If GetTens = Result End Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "1" Case 2: GetDigit = "2" Case 3: GetDigit = "3" Case 4: GetDigit = "4" Case 5: GetDigit = "5" Case 6: GetDigit = "6" Case 7: GetDigit = "7" Case 8: GetDigit = "8" Case 9: GetDigit = "9" Case Else : GetDigit = " " End Select End Function
- 按Ctrl+S保存更新的工作簿。
你需要重新保存你的工作簿。 当你试图用宏保存工作簿时,你会得到消息" 以下功能不能保存在无宏工作簿中 "
当你看到一个新的对话框时,选择保存为选项。 在" 保存为类型 "选取选项" 启用Excel宏的工作簿 ".
在你的工作表中使用SpellNumber巨集
现在你可以使用函数 咒语号码 在你的Excel文件中输入 =SpellNumber(A2)
这里A2是有数字或金额的单元格的地址。
在这里你可以看到结果。
Voila!
快速复制SpellNumber函数到其他单元格。
如果你需要转换整个表格,而不仅仅是一个单元格,请将鼠标光标放在有公式的单元格的右下角,直到它变成一个小黑叉。
左键点击并拖动它横跨一栏来填入公式。 松开按钮即可看到结果。
注意:请记住,如果你使用SpellNumber与另一个单元格的链接,每次源单元格中的数字发生变化时,写入的总和就会更新。
你也可以直接在函数中输入数字,比如说。 =SpellNumber(29.95)
(29.95 - 不含引号和美元符号)。
在Excel中使用宏来拼写数字的弊端
首先,你必须了解VBA,以便根据你的需要修改代码。 有必要为每个工作簿粘贴代码,在那里你打算改变它。 否则,你将需要创建一个带有宏的模板文件,并配置Excel在每次启动时加载该文件。
使用宏的主要缺点是,如果你把工作簿发给别人,这个人将看不到文本,除非宏是内置在工作簿中的。 即使是内置的,他们也会得到一个提示,说工作簿中有宏。
使用一个特殊的插件将数字拼成单词
对于那些需要快速拼写金额,但又没有时间学习VBA或想办法解决的Excel用户,我们创建了一个特殊的工具,可以快速进行几种流行货币的金额到文字的转换。 请见见我们最新发布的Excel终极套件中包含的拼写数字插件。
除了可以随时使用外,该工具在将金额转换为文本方面确实很灵活。
- 你可以选择以下货币之一:美元、欧元、英镑、比特、澳元。
- 用美分、便士或比特拼出小数部分。
- 为结果选择任何文本大小写:小写、大写、标题大小写或句子大小写。
- 用不同的方式拼出小数部分。
- 包括或省略零分。
该插件支持所有现代版本,包括Excel 365、Excel 2029、Excel 2016、Excel 2013和Excel 2010。 请随时在上述链接的产品主页上探索其他功能。
现在,让我们看看这个数字拼写工具的运作。
- 选择一个空单元格作为结果。
- 关于 机会 选项卡,在 公用事业 组,点击 咒语编号 .
- 在 溢出物编号 在出现的对话窗口中,配置以下内容。
- 对于 选择你的号码 框,选择包含你想写成文本的金额的单元格。
- 指定所需的 目前 , 字母盒 和的方式。 小数部分 的数字应该是拼出来的。
- 定义是否包括零分。
- 选择是否将结果作为数值或公式插入。
- 在对话窗口的底部。 预览 如果你对你的数字的写法感到满意,请点击 咒语 否则,请尝试不同的设置。
下面的截图展示了默认选择和B2中的拼写数字。 请注意公式栏中有一个公式(更准确地说,是一个用户定义的函数)。
而这是一个快速示范,说明其他货币可以被拼写出来。
提示和说明。
- 因为 咒语编号 该插件被设计用来处理现实生活中的使用情况,如发票和其他财务文件,它只能转换 一个数字 在一个时间。
- 要拼出一个 数列 ,在第一个单元格中插入一个公式,然后向下复制该公式。
- 如果你的源数据有可能在未来发生变化,那么最好的办法是 将结果作为公式插入 ,所以它随着原始号码的变化而自动更新。
- 在选择 结果如公式 选项,一个自定义的 用户定义的功能 (如果你打算与没有安装Ultimate Suite的人分享你的工作簿,记得在分享前用数值替换公式。
逆向转换--英语单词转换成数字
坦率地说,我无法想象你为什么会需要它。 只是为了以防万一... :)
看来,Excel MVP,Jerry Latham,创建了这样的Excel用户定义函数(UDF),即 词语到数字 它将英语单词转换为数字。
你可以下载Jerry的WordsToDigits工作簿来查看UDF代码。 在这里你还可以找到他关于如何使用该函数的例子。
你可以在工作表上看到该功能是如何工作的" 参赛作品样本 如果你打算在你的文件中使用WordsToDigits,请注意这个功能是有限制的。 例如,它不能识别在单词中输入的分数。 你可以在""上找到所有细节。 信息 "张。