No.1
Excel数据有多种格式,编程过程中,如果对数据格式分辨不清,那么带来的麻烦,真的无法言语。
数据格式分类大体有下面几类:
"数字", "货币", "负数", "文本","日期","时间","分数","百分"等等。
本节主要介绍如下几类:
"数字", "货币", "负数", "文本"
同样,对于设置数据格式针对的是某一个单元格区域进行,所以,要用到单元格区域对象Range。
Range对象下面的NumberFormat属性进行设置。
如下图介绍:
此属性可以定义单元格的数据格式。
Excel中有一些默认的格式,用一些字符来表示,如"General"为常规格式,"@"为文本格式,"$"为货币格式等等。
No.2
应用方法
Dim cell As Range
Set cell = ActiveSheet.Range("A2:F2")
cell.NumberFormat = "$#,##0.00_);[Red]($#,##0.00);0.00;@"
分别用如下代码表示数据格式:
- 数字 #,##0.00_)
- 货币 $#,##0.00_)
- 负数 [Red]($#,##0.00)
- 文本 @
上述代码是Excel自定义的文本字符,"#"号表示n位数字,一个“0”代表一位数字,[Red]表示数据颜色为红色,字符"@"代表文本。
No.3
下面用一个实例进行演示:
本例单元按钮可自动生成一些数据列表,根据不同的表头,可显示不同的数据类型。
仔细看数据的布局和显示方式,可以分辨出数据之间的不同之处。
按钮代码:
Private Sub ShowNumberFormat()On Error Resume NextApplication.ScreenUpdating = FalseDim Fname'定义表头数组Fname = Array("格式名称", "原数据", "数字", "货币", "负数", "文本")Dim cell As Range, xcell As RangeSet cell = ActiveSheet.Range("A2:F2")cell.Value = Fname'设置表头Set cell = ActiveSheet.Range("B3:B15")'定义数据区域With cell .Clear .RowHeight = 20 .EntireRow.Borders.Item(xlEdgeBottom).LineStyle = 1 .EntireRow.Interior.Color = RGB(21, 221, 222) With .Font .Size = 12 .Name = "微软雅黑" End WithEnd WithFor Each xcell In cell With xcell .Value = VBA.Int((9999.99 - 99 + 1) * VBA.Rnd + 99)'随机生成数据 With .Offset(0, 1) .Value = .Offset(0, -1).Value .NumberFormat = "#,##0.00_)" '数字格式 End With With .Offset(0, 2) .Value = .Offset(0, -2).Value .NumberFormat = "$#,##0.00_)" '货币格式 End With With .Offset(0, 3) .Value = .Offset(0, -3).Value .NumberFormat = "[Red]($#,##0.00)" '负数货币格式 End With With .Offset(0, 4) .Value = .Offset(0, -4).Value .NumberFormat = "@" '文本格式 End With End WithNext xcellSet xcell = NothingSet cell = NothingApplication.ScreenUpdating = TrueEnd Sub
No.4
关键代码如下四行。
.NumberFormat = "#,##0.00_)" '数字格式.NumberFormat = "$#,##0.00_)" '货币格式.NumberFormat = "[Red]($#,##0.00)" '负数货币格式.NumberFormat = "@" '文本格式
其实在实际应用中,可以把不同的格式代码写到一起使用。
如:
.NumberFormat = "$#,##0.00_);[Red]($#,##0.00);0.00;@"
不同的数据格式标识之间用";"隔开。
其它格式,"日期","时间","分数","百分"等等,在另外一篇进行介绍。
欢迎关注、收藏
---END---