excel单元格格式问题。

xpkang 2005-07-26 04:26:21
excel2003,选中一个单元格,其中内容为数字“14”,将格式设置成“特殊”-“中文大写”后,显示内容为“壹拾肆”,将单元格格式改为“文本”后,显示内容又变为“14”了。请问:能否实现,将单元格格式改为“文本”后,单元格中仍然显示“壹拾肆”。
或者哪位大吓能告诉我:将单元格中数字变为大写金额。如将数字“3245.78”变为“叁仟贰佰肆拾伍圆柒角捌分整”,请注意后面要求有一个“整”字。
...全文
476 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
世界因你而小 2005-08-27
  • 打赏
  • 举报
回复
mark
sah 2005-08-01
  • 打赏
  • 举报
回复
原来是用宏,谢谢!
good_luck898 2005-08-01
  • 打赏
  • 举报
回复
如果只用EXCEL,没有其它数据库.VBA总是能起很大作用的!
xpkang 2005-07-28
  • 打赏
  • 举报
回复
非常好的解决方法,跟各位分享:步骤如下:
打开excel软件,“工具”-“宏”-“visual basic 编辑器”-“插入”-“模块”-双击插入的模块-调出代码编辑窗口-将下列程序复制到代码编辑窗口。一“保存”-选“个人宏工作薄”-确定,“文件”-“关闭并返回到excel”。OK了。
在excel中选 中一个单元格,“插入”-“函数”-“或选择类别”下拉框,选择“用户定义”-“personal.xls! rmbdx”输入数字,或选中要另外的存放数据的单元格,确定。有什么效果,自己看吧。


Function rmbdx(value, Optional m = 1)
'中文大写源代码,By 对面男孩、redwin
'支持负数,支持小数点后的第三位数是否进行四舍五入处理
'默认参数为1,即小数点后的第三位数进行四舍五入处理
'2002-10-11--2002-10-13

On Error Resume Next
Dim a
Dim jf As String '定义角分位
Dim j '定义角位
Dim f '定义分位


If IsNumeric(value) = False Then '判断待转换的value是否为数值
rmbdx = ""
Else

If value < 0 Then '处理正负数的情况
a = "负"
Else
a = ""
End If

value = Abs(CCur(value))

'当参数m不输入(默认为0)或为0时,小数点后的第三数不进行四舍五入处理
'当参数m为1或其它数值时,小数点后的第三数进行四舍五入处理

If m = 0 Then
jf = Fix((value - Fix(value)) * 100)
value = Fix(value) + jf / 100
Else '厘位进行四舍五入实践很少用到,但还是要照顾到
value = Application.WorksheetFunction.Round(value, 2) '-->这句是关键!只用round有bug
jf = Round((value - Fix(value)) * 100, 0)
End If

If value = 0 Or value = "" Then '当待转换数值为0或空时,不进行转换
rmbdx = ""
Else

strrmbdx = Application.WorksheetFunction.Text(Int(value), "[DBNum2]") & "圆" '转换整数位
If Int(value) = 0 Then
strrmbdx = ""
End If

If Int(value) <> value Then
If jf > 9 Then '判断小数位
j = Left(jf, 1)
f = Right(jf, 1)
Else
j = 0
f = jf
End If

If j <> 0 And f <> 0 Then '角分位都有时
jf = Application.WorksheetFunction.Text(j, "[DBNum2]") & "角" _
& Application.WorksheetFunction.Text(f, "[DBNum2]") & "分"
Else '处理出现零几分的情况
If Int(value) = 0 And j = 0 And f <> 0 Then
jf = Application.WorksheetFunction.Text(f, "[DBNum2]") & "分"
Else
If j = 0 Then '有分无角时
jf = "零" & Application.WorksheetFunction.Text(f, "[DBNum2]") & "分"
Else
If f = 0 Then '有角无分时
jf = Application.WorksheetFunction.Text(j, "[DBNum2]") & "角整"
End If
End If
End If
End If

strrmbdx = strrmbdx & jf '组装

Else
strrmbdx = strrmbdx & "整"
End If

rmbdx = a & strrmbdx '最后成型了,各位MM满意了吧

End If

End If

End Function
djuan827 2005-07-28
  • 打赏
  • 举报
回复
中文大写还有个方法:把智能ABC输入法打开,按Shift+I键输入需要的数字,回车键OK.试试看是不是更方便了.
sah 2005-07-27
  • 打赏
  • 举报
回复
能分享一下吗?
xpkang 2005-07-26
  • 打赏
  • 举报
回复
晕,没人回答,我自己找到答案了。

6,210

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office应用
社区管理员
  • Microsoft Office应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧