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

news/2024/10/8 20:44:40 标签: 开发语言

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

30050dc88ca30cc7994b4576c3bb99b3.jpeg

分享成果,随喜正能量】心无挂碍,尽情享受当下便好。世事浮云何足问,不如高卧且加餐。生活中一切事,放平心态,不纠结、不执着,从容潇洒的走过,也是一种难得的人生智慧。

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

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

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

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

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

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

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

5552fdabea7b760af7b313f9c979db66.jpeg

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

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

代码截图:

6198f1b669e2977a021b714f99304ee5.jpeg

代码的讲解:(略)

代码的运行结果:

9afeffb33bfeea0f2ab051520ce9acbd.jpeg

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

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

我们先看一下原始数据:

3ae917649b3a095e6a8ce30ba72135b3.jpeg

代码如下:

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

代码截图:

a2f71c47fba1d209a1138a8fecb12609.jpeg

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

代码的运行结果:

51640512c6bfc229f8b22c6f3082e1c8.jpeg

实例三:条件格式设置

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

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

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

如下面截图的数据:

6d50751424e9079c3a1dd4a83cc7a688.jpeg

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

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

代码的截图:

c61c47f9a731231110e0f5b4730eac2f.jpeg

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

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

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

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

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

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

4d5263d170e7e1954797fdb103a1fd20.jpeg

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

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

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

a2941b823ea7588577152b8ab5ea7028.jpeg

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

今日内容回向:

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

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

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

df6232585db3589e871d56ff2145aabd.jpeg

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

ff86ebea679d849f23b97bcd28668584.jpeg

2676436484cf23c44b5c45ab56ae45a2.jpeg




http://www.niftyadmin.cn/n/5694767.html

相关文章

pytorch中的TensorDataset和DataLoader

TensorDataset 详解 TensorDataset 主要用于将多个 Tensor 组合在一起,方便对数据进行统一处理。它可以用于简单地将特征和标签配对,也可以将多个特征张量组合在一起。 1. 将特征和标签组合 假设我们有一组图像数据(特征)和对应…

【RTCP】Interarrival Jitter: 到达间隔抖动的举例说明

Interarrival Jitter: 32位,表示接收到的数据包间隔的抖动,用于评估网络延迟变化情况。给出一些具体实例,帮助理解“Interarrival Jitter”(到达间隔抖动)是指接收到连续数据包之间时间间隔的变化情况,这个指标用于评估网络的稳定性和延迟的波动情况。在RTP中,接收端会计…

【大数据】在线分析、近线分析与离线分析

文章目录 1. 在线分析(Online Analytics)定义特点应用场景技术栈 2. 近线分析(Nearline Analytics)定义特点应用场景技术栈 3. 离线分析(Offline Analytics)定义特点应用场景技术栈 总结 在线分析&#xff…

vue2与vue3知识点

1.vue2(optionsAPI)选项式API 2.vue3(composition API)响应式API vue3 setup 中this是未定义(undefined)vue3中已经开始弱化this vue2通过this可以拿到vue3setup定义得值和方法 setup语法糖 ref > …

笔记整理—linux进程部分(8)线程与进程

前面用了高级IO去实现鼠标和键盘的读取&#xff0c;也说过要用多进程方式进行该操作&#xff1a; int mian(void) {int ret-1;int fd-1;char bug[100]{0};retfork();if(0ret){//子进程&#xff0c;读鼠标}if(0<ret){//父进程&#xff0c;读键盘}else{perror("fork&quo…

浅色系统B端管理系统标配,现在也卷起了可视化,挡不住呀

在 B 端管理系统的领域中&#xff0c;浅色系统一直以来都是标配之选。其简洁、清新的外观&#xff0c;给人以专业、高效的视觉感受。如今&#xff0c;浅色系统更是卷入了可视化的浪潮&#xff0c;这一趋势势不可挡。 浅色系统的优势在于它能够营造出一种舒适的视觉环境&#x…

​自动猫砂盆到底有没有必要?过来人经验:千万别再盲目选择了!

不知道大家养猫有没有一样的烦恼&#xff0c;就是上班时间到底要怎么保证猫砂盆里的猫屎被铲干净呢&#xff1f;放一天不铲的话&#xff0c;一次两次还行&#xff0c;长期这样就会害的猫砂盆内部细菌增多&#xff0c;甚至长虫&#xff0c;严重危害小猫的健康安全&#xff0c;但…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(下)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 概述 OpenHarmony Camera驱动模型结构 HDI Implementation&#x…