使用VBA设置数字格式

在Excel工作表中,使用自定义格式可以轻松实现指定宽度(数字个数)格式,例如设置单元格格式为“000”,输入数字6,则单元格显示内容为006,如下图所示。

使用VBA设置数字格式_第1张图片

在VBA中如何实现类似的数据格式转换呢?

有的小伙伴可能说这个很简单,可以使用Range对象的Text数据,例如Cells(1,1).Text可以得到显示内容为006

这个方法是可行的,其实还有更简单的方法。

接下来创建一个自定义函数实现格式转换,函数提供了两个参数

  • 参数number:待转换的数字
  • 参数digits:指定宽度
Function FormNum1(number, digits)
    FormNum = Right(Application.Rept("0", digits) & number, digits)
End Function

代码解析:
Application.Rept("0", digits)调用工作表函数Rept,生成指定个数的0组成的字符串,以下简称为填充字符串。
试用&连接符将填充字符串和数字合并,然后使用Right函数提取字符串从右侧开始的指定位数。

调用自定义函数也非常简单

Sub demo()
    Debug.Print FormNum(6, 3)
End Sub

直接使用VBA的Format函数实现,更简单。

Function FormNum1(number, digits)
    FormNum = Format(number, Application.Rept("0", digits))
End Function

代码解析:
同样调用工作表函数Rept,生成指定个数的0组成的字符串,只是此处作为格式字符,相当于Excel中的自定义格式。

你可能感兴趣的:(格式,Excel,单元格,数字格式,固定宽度,Rept,Format,补足数字位数)