问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

VBA经典应用69例应用6:利用VBA进行格式化的设置

创作时间:
作者:
@小白创作中心

VBA经典应用69例应用6:利用VBA进行格式化的设置

引用
CSDN
1.
https://blog.csdn.net/VBA6337/article/details/142766960

《VBA经典应用69例》是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容:VBA经典应用69例应用6:利用VBA进行格式化的设置

应用6 工作表中数值的格式化(NumberFormat)处理

这个专题的应用也是来源于给学员的答疑,格式(Format)是我们在处理工作表数据时必须要面对的问题,处理的好可以让整个工作表看起来赏心悦目,处理的不好,会给人以凌乱的感觉。我们这讲的内容将总结一下在工作表中如何格式化数据,处理方案仍是结合我们日常工作中的EXCEL操作来进行。

NumberFormat是Excel Range对象的属性。Range对象可以被视为一个单元格或一组单元格,可以是单个单元格、或者是一列或是工作表的UsedRange。NumberFormat属性可用于设置时间、日期、货币/会计格式和许多其他格式的格式。通过这种格式的设置,可以让信息以最佳方式传递给阅读者。例如,我们可以在长数字中加入一些逗号,可以在把小数点长的数字向上(或向下)舍入到最接近的2或3个小数点等等。此外,NumberFormat还可以用来设置一个自定义格式。

4 利用VBA进行格式化的设置

在这节中,我们讲解利用VBA进行格式化设置,我仍是通过实例应用给大家讲解。

实例一:VBA基本的单元格格式设置

在这个实例中我们利用VBA完成单元格的数字格式属性设置。在此示例中,我们希望将单元格C2的十进制小数点位数设置为2,单元格C3添加逗号,使其更具可读性。C1和C2单元格的值都等于响应A列单元格的值。原始数据如下截图:

为了完成上面的格式要求,代码如下:

Sub mynzA()  
Sheets("SHEET3").Select  
Range("B2") = "保留两位小数"  
Range("C2").Value = Range("A2").Value  
Range("C2").NumberFormat = "#.##"  
Range("B3") = "数值添加逗号"  
Range("C3").Value = Range("A3").Value  
Range("C3").NumberFormat = "#,#"  
End Sub  

代码截图:

代码的讲解:(略)

代码的运行结果:

实例二:单元格格式设置的处理

这个实例中,我们仍然对C列的单元格进行设置,值的来源仍是A列的数据。C4中添加逗号,以便于读取。C5单元格,我们希望删除右边的六位数字,并改为"M",我们不希望有任何小数点。

我们先看一下原始数据:

代码如下:

Sub mynzB()  
Sheets("SHEET3").Select  
Range("B4") = "添加逗号,两位小数"  
Range("C4").Value = Range("A4").Value  
Range("C4").NumberFormat = "#,##0.##"  
Range("B5") = "数值保留*M形式"  
Range("C5").Value = Range("A5").Value  
Range("C5").NumberFormat = "#,##0,, ""M"""  
End Sub  

代码截图:

代码的讲解:"#,##0,, ""M""",如果此设置中两个相连的逗号与两个相连的引号间不加空格, 那么在最后显示的运行结果中“1”和“M”间同样也将不存在空格。

代码的运行结果:

实例三:条件格式设置

这个实例是一种条件格式的设置,有时,如果数字为负可能需要将字体变红。当单元格值为零时,要显示特定字符串(字符集)。此时我们可以利用下面的语法达到我们的目的:

[display of positive values];[display of negative values];[display of zero values]; [display of text values]

这个语法共四部分,分别完成正值、负值、零及文本的格式设置,在这些方括号中,我们可以完成格式设置代码。

如下面截图的数据:

我们要完成的设置为:让数以红色区分;小数点位数为两位;添加逗号;将零替换为"-"。下面看我给出的格式设置代码:

Sub mynzC()  
Sheets("SHEET3").Select  
Range("B6:B11") = "条件格式设置"  
Range("C6:C11").Value = Range("A6:A11").Value  
Range("C6:C11").NumberFormat = "#,0.00;[red]-#,0.00;""-"""  
End Sub  

代码的截图:

代码的讲解:让我们分解格式代码:"#,0.00;[red]-#,0.00;""-""" 其中有两个分号,这意味着首先是正值代码,然后是负值代码,然后是零值代码。

1)正值的设置代码,代码部分如下截图:

① ".00"确保我们有两个小数位。

② "0.00"确保小数的左侧至少有一位数字,如果没有,则将放置一个零位。

③ "#,0"确保在适用的情况下添加逗号。请注意,我们使用的是井号标签符号而不是零号,因为如果我们小数的左侧只有一位数字,那么我们就不想在左侧添加零。

2)负值的设置代码,代码部分如下截图:

其中[red]是为了设置负值为红色。其余类似正值的设置。

3)剩余的部分为零值的设置,将零值替换为“-”。这里是双层的引号,必须编写外部双引号,因为代码是字符串(字符)。“-”自然需要用双引号括起来。但是为了向VBA表明我们需要这些双引号(这意味着我们不仅仅是以函数的方式使用它们,而是实际上希望它们成为字符串的一部分),我们用另一对双引号将它们包围起来。

最后我们看看代码的运行输出效果:

总结:Excel中数字格式属性可通过Excel界面或VBA来实现。本讲的格式化代码我列举了大量的示例进行解释,以便读者能理解格式化的操作。另外,数字格式属性中还有条件格式,可用于为特定条件设置指定格式。同时格式化时可以将文本与数字相结合。

今日内容回向:

1 VBA如何设置单元格的格式?

2 单元格条件格式的语法是怎样的,如何利用条件格式设置单元格?

本讲内容参考程序文件:应用006.xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号