BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / office-tool / #11339同步于 2008/9/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖

[合集] [合集] 【已解决】excel怎么设置能自动把输入的数字转换

police
2008/9/5镜像同步0 回复
☆─────────────────────────────────────☆ police (我其实想换个名。。。。) 于 (Fri Jul 25 10:46:16 2008) 提到: ☆─────────────────────────────────────☆ soulchewer (淡如水之魂君子) 于 (Fri Jul 25 10:37:09 2008) 提到: 要打发票 想在小写输了数字,就能自动在大写的格子生成大写的金额 谢谢 ☆─────────────────────────────────────☆ xiongQQ (万能的黑手) 于 (Fri Jul 25 10:43:23 2008) 提到: :☆将数字转换成大写 很多用户在工作中经常与大写金额打交道,因此希望在EXCEL输入中能够快速地将数字转换为大写数字。选中所有需要使用大写数字的单元格,单击鼠标右键,在弹出的快捷菜单中执行“设置单元格格式”命令,在弹出的对话框中选择“数字”选项卡,在“分类”列表框中选择“特殊”选项,然后在右侧的“类别”列表框中选中“中文大写数字”,单击“确定”按钮。 【 在 soulchewer (淡如水之魂君子) 的大作中提到: 】 : 要打发票 : 想在小写输了数字,就能自动在大写的格子生成大写的金额 : 谢谢 : ................... ☆─────────────────────────────────────☆ xiongQQ (万能的黑手) 于 (Fri Jul 25 10:44:11 2008) 提到: http://tech.sina.com.cn/s/2008-05-20/08302205118.shtml 这个有图示 恩恩 【 在 xiongQQ (万能的黑手) 的大作中提到: 】 : :☆将数字转换成大写 很多用户在工作中经常与大写金额打交道,因此希望在EXCEL输入中能够快速地将数字转换为大写数字。选中所有需要使用大写数字的单元格,单击鼠标右键,在弹出的快捷菜单中执行“设置单元格格式”命令,在弹出的对话框中选择“数字”选项卡,在“分类 ☆─────────────────────────────────────☆ xiongQQ (万能的黑手) 于 (Fri Jul 25 10:57:59 2008) 提到: 10分钟内连解答带合集 ≡ ̄﹏ ̄≡ 【 在 police (我其实想换个名。。。。) 的大作中提到: 】 : 创纪录了 ☆─────────────────────────────────────☆ soulchewer (淡如水之魂君子) 于 (Fri Jul 25 11:50:54 2008) 提到: 汗了,真快,谢了再看 ☆─────────────────────────────────────☆ soulchewer (淡如水之魂君子) 于 (Fri Jul 25 12:00:11 2008) 提到: 可能我没说清楚,这么说吧 在D2格子输100.00 然后要求自动在D3格子生成”金额合计人民币(大写):壹佰元整(100.00)” 希望能做到大写和小写金额随着D2输入变化 ☆─────────────────────────────────────☆ police (我其实想换个名。。。。) 于 (Fri Jul 25 12:35:42 2008) 提到: EXCEL中将数字转换为人民币大写 时间:2008-2-1 11:12:11 阅读:1851 鉴于EXCEL本身提供将数字转换为大写表示的功能根本不能正常应用在实际投标或财务应用之中,所以要自己建设,暂时找到了三种实现途径,经过测试均功能正常。 方法1,通过在EXCEL表格框(例如在“B1”单元)中直接输入以下公式: =IF(A1<0,"金额为负无效", (IF(OR(A1=0,A1=""),"(人民币)零元", IF(A1<1,"(人民币)", TEXT(INT(A1),"[dbnum2](人民币)G/通用格式")&"元"))))& IF( (INT(A1*10)-INT(A1)*10)=0, IF(INT(A1*100)-INT(A1*10)*10=0,"","零"), (TEXT(INT(A1*10)-INT(A1)*10,"[dbnum2]")&"角")) &IF( (INT(A1*100)-INT(A1*10)*10)=0, "整", TEXT((INT(A1*100)-INT(A1*10)*10),"[dbnum2]")&"分") 然后在“A1”中输入数字,就可看到效果。 方法2,通过VBA(宏)输入转换公式: 点击菜单“工具”->“宏”->“VisualBasic编辑器”,在编辑器窗口中,点击菜单“插入”->“模块”,在出现的窗口中输入以下内容: Function daxie(ByVal Num) ' 人民币中文大写函数 Application.Volatile True Place = "分角元拾佰仟万拾佰仟亿拾佰仟万" Dn = "壹贰叁肆伍陆柒捌玖" D1 = "整零元零零零万零零零亿零零零万" If Num < 0 Then FuHao = "(负)" Num = Format(Abs(Num), "###0.00") * 100 If Num > 999999999999999# Then: daxie = "数字超出转换范围!!": Exit Function If Num = 0 Then: daxie = "零元零分": Exit Function NumA = Trim(Str(Num)) NumLen = Len(NumA) For J = NumLen To 1 Step -1 ' 数字转换过程 temp = Val(Mid(NumA, NumLen - J + 1, 1)) If temp <> 0 Then ' 非零数字转换 NumC = NumC & Mid(Dn, temp, 1) & Mid(Place, J, 1) Else ' 数字零的转换 If Right(NumC, 1) <> "零" Then NumC = NumC & Mid(D1, J, 1) Else Select Case J ' 特殊数位转换 Case 1 NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) Case 3, 11 NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零" Case 7 If Mid(NumC, Len(NumC) - 1, 1) <> "亿" Then NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零" End If Case Else End Select End If End If Next daxie = "(人民币)" & FuHao & Trim(NumC) End Function 然后切换回excel,在“A2”单元中输入数字,在“B2”单元中输入:“=DaXie(A2)”,就可看到效果。 方法3,同样是通过VBA公式,方法同上,公式如下: Function daxie1(money As String) As String ' Dim x As String, y As String Const zimu = ".sbqwsbqysbqwsbq" '定义位置代码 Const letter = "0123456789sbqwy.zjf" '定义汉字缩写 Const upcase = "零壹贰叁肆伍陆柒捌玖拾佰仟萬億圆整角分" '定义大写汉字 Dim temp As String temp = money If InStr(temp, ".") > 0 Then temp = Left(temp, InStr(temp, ".") - 1) If Len(temp) > 16 Then MsgBox "数目太大,无法换算!请输入一亿亿以下的数字", 64, "错误提示": Exit Function '只能转换一亿亿元以下数目的货币! x = Format(money, "0.00") '格式化货币 y = "" For i = 1 To Len(x) - 3 y = y & Mid(x, i, 1) & Mid(zimu, Len(x) - 2 - i, 1) Next If Right(x, 3) = ".00" Then y = y & "z" '***元整 Else y = y & Left(Right(x, 2), 1) & "j" & Right(x, 1) & "f" '*元*角*分 End If y = Replace(y, "0q", "0") '避免零千(如:40200肆萬零千零贰佰) y = Replace(y, "0b", "0") '避免零百(如:41000肆萬壹千零佰) y = Replace(y, "0s", "0") '避免零十(如:204贰佰零拾零肆) Do While y <> Replace(y, "00", "0") y = Replace(y, "00", "0") '避免双零(如:1004壹仟零零肆) Loop y = Replace(y, "0y", "y") '避免零億(如:210億 贰佰壹十零億) y = Replace(y, "0w", "w") '避免零萬(如:210萬 贰佰壹十零萬) y = IIf(Len(x) = 5 And Left(y, 1) = "1", Right(y, Len(y) - 1), y) '避免壹十(如:14壹拾肆;10壹拾) y = IIf(Len(x) = 4, Replace(y, "0.", ""), Replace(y, "0.", ".")) '避免零元(如:20.00贰拾零圆;0.12零圆壹角贰分) For i = 1 To 19 y = Replace(y, Mid(letter, i, 1), Mid(upcase, i, 1)) '大写汉字 Next daxie1 = "(人民币)" & y End Function 切换回excel,在“A3”单元中输入数字,在“B3”单元中输入:“=DaXie1(A3)”,就可看到效果。 【 在 xiongQQ (万能的黑手) 的大作中提到: 】 : 哦啦 : 那就拼一下字符串就好 : 吃完饭回来弄下看 : ................... ☆─────────────────────────────────────☆ police (我其实想换个名。。。。) 于 (Fri Jul 25 12:36:06 2008) 提到: 我我给你改改哈 嗯 【 在 police (我其实想换个名。。。。) 的大作中提到: 】 : EXCEL中将数字转换为人民币大写 : 时间:2008-2-1 11:12:11 阅读:1851 : 鉴于EXCEL本身提供将数字转换为大写表示的功能根本不能正常应用在实际投标或财务应用之中,所以要自己建设,暂时找到了三种实现途径,经过测试均功能正常。 : ................... ☆─────────────────────────────────────☆ police (我其实想换个名。。。。) 于 (Fri Jul 25 12:38:05 2008) 提到: 破括号绕死我了。。。 【 在 police (我其实想换个名。。。。) 的大作中提到: 】 : 我我给你改改哈 : 嗯 ☆─────────────────────────────────────☆ police (我其实想换个名。。。。) 于 (Fri Jul 25 12:47:58 2008) 提到: test this =(IF(A1<0,"金额为负无效", (IF(OR(A1=0,A1=""),"金额合计人民币(大写):零元(0.00)", IF(A1<1,"金额合计人民币(大写):", TEXT(INT(A1),"[dbnum2]金额合计人民币(大写):G/通用格式")&"元"))))& IF( (INT(A1*10)-INT(A1)*10)=0, IF(INT(A1*100)-INT(A1*10)*10=0,"","零"), (TEXT(INT(A1*10)-INT(A1)*10,"[dbnum2]")&"角")) &IF( (INT(A1*100)-INT(A1*10)*10)=0, "整", TEXT((INT(A1*100)-INT(A1*10)*10),"[dbnum2]")&"分")) &"("&A1&")" 【 在 police (我其实想换个名。。。。) 的大作中提到: 】 : 破括号绕死我了。。。 ☆─────────────────────────────────────☆ police (我其实想换个名。。。。) 于 (Fri Jul 25 12:48:17 2008) 提到: 把A1换成你要的就好 【 在 police (我其实想换个名。。。。) 的大作中提到: 】 : test this : =(IF(A1<0,"金额为负无效", : (IF(OR(A1=0,A1=""),"金额合计人民币(大写):零元(0.00)", : ................... ☆─────────────────────────────────────☆ police (我其实想换个名。。。。) 于 (Fri Jul 25 13:17:50 2008) 提到: 我已经改完了。。。。 vba那个我先不管了。。 【 在 xiongQQ (万能的黑手) 的大作中提到: 】 : 恩 : 我也查到这个了 : 实现是没问题的 : ................... ☆─────────────────────────────────────☆ police (我其实想换个名。。。。) 于 (Fri Jul 25 13:19:01 2008) 提到: 那个[dbnum2] 是个什么东东? tcpip又把我玩了。。 【 在 police (我其实想换个名。。。。) 的大作中提到: 】 : 我已经改完了。。。。 : vba那个我先不管了。。 ☆─────────────────────────────────────☆ xinl (xinl) 于 (Fri Jul 25 13:40:26 2008) 提到: =。= 真没同情心 【 在 xiongQQ (万能的黑手) 的大作中提到: 】 : 赞 : 动手吧 ☆─────────────────────────────────────☆ xPaL0nE (【天山南北烤肉军团】四等小兵兼烤炉 ) 于 (Fri Jul 25 14:26:48 2008) 提到: 这mj不错 【 在 xinl (xinl) 的大作中提到: 】 : =。= : 真没同情心
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。