前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用功能加载宏——单元格数字格式

常用功能加载宏——单元格数字格式

作者头像
xyj
发布2020-07-28 11:44:14
5950
发布2020-07-28 11:44:14
举报
文章被收录于专栏:VBA 学习

会计人员在使用Excel的时候,经常会用到一种数字格式,在Excel里直接就叫做会计专用,也就是开始菜单里的那个逗号:

需要在Excel数据基础上写报告的人应该会发现,这种格式在复制到Word的时候,会出现一些空格:

前后会出现空格,这个时候一般需要手动去删除一下。

为什么会有这种空格?

我们从Excel复制数据过去,默认其实是复制了单元格的Text属性Text属性也就是我们眼睛看到的东西,Text属性显示的东西也就是设置了格式后的东西。

对一个设置了会计专用格式的单元格,右键打开设置单元格格式窗口,再点击自定义,显示的格式代码是:

代码语言:javascript
复制
_ * #,##0.00_ ;_ * -#,##0.00_ ;_ * "-"??_ ;_ @_ 

这个代码以;为分隔符,分别表示大于0小于0等于0文本的格式,具体代码的意思可以到网上搜索Excel Text函数看看。

我们这里关心的是什么造成了那个空格,从上面的代码应该也能大概猜到,这里就直接写出不含空格的格式:

代码语言:javascript
复制
#,##0.00

只要保留前面的一部分就可以,这个时候点击确定,重新设置单元格格式,再去复制单元格到Word,你会发现空格已经没有了。

所以,只要设置上面那个自定义格式代码,这样既能保留两位小数、会计的千分位,又不会有多余的空格,如果经常会有这种需要,那么创建一个按钮来设置单元格的格式就非常方便了:

首先在customUI.xml中增加代码:

代码语言:javascript
复制
        <menuSeparator id="rbSepNumber02" title="自定义格式"/>
        <button id="rbbtnNumFormat1" label="会计格式" onAction="rbbtnNumFormat" imageMso="CommaStyle" tag="#,##0.00"/>   

回调函数:

代码语言:javascript
复制
Sub rbbtnNumFormat(control As IRibbonControl)
    MRange.NumFormat control.Tag
End Sub

函数实现:

代码语言:javascript
复制
Sub NumFormat(fmt As String)
    If TypeName(Selection) = "Range" Then
        Selection.NumberFormat = fmt
    End If
End Sub
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档