excel利用VBA实现类似条件格式改变字体字号的效果
发布时间:2023-07-25 07:33:22
Excel中的条件格式可以非常直观地显示某些特定的数据,功能十分强大。但条件格式也有一些限制,例如无法通过条件格式设置字体和字号。如果要根据条件来改变单元格中字体或字号,可以用VBA来实现。下面的VBA代码将指定区域(H2:H500)中大于5000而小于10000的数值设置为“黑体”、“16”,而将指定区域中其他单元格的字体和字号设置为“宋体”、“11”。
Sub ConditionalFont()
Dim rCell As Range
Dim Rng As Range
Set Rng = Range("H2:H500")
Application.ScreenUpdating = False
For Each rCell In Rng
With rCell
If .Value > 5000 And .Value < 10000 Then
.Font.Name = "黑体"
.Font.Size = 16
Else
.Font.Name = "宋体"
.Font.Size = 11
End If
End With
Next
Application.ScreenUpdating = True
End Sub
使用方法是:按Alt +F11,打开VBA编辑器,在“工程”窗口中选择需要设置的工作表,在代码窗口中粘贴上述代码。然后返回到Excel工作表界面,按Alt+F8打开“宏”对话框,选择上述代码第一行的宏名称运行即可。
当区域中的内容更改后,上述代码还不能实现自动设置字体字号的功能。要实现这种类似条件格式的效果,可以加上下面的VBA代码:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim rCell As Range
Dim Rng As Range
Dim dRng As Range
Set Rng = Range("H2:H500")
'设置dRng为Target的从属区域,仅对本工作表中的引用有效
Set dRng = Range(Target.Dependents.Address)
'如果从属区域包含在指定区域中
If Not Intersect(dRng, Rng) Is Nothing Then
For Each rCell In Intersect(dRng, Rng)
SetFont rCell
Next
End If
'如果直接在指定区域中更改
If Union(Target, Rng).Address = Rng.Address Then
For Each rCell In Target
SetFont rCell
Next
End If
End Sub
Function SetFont(rRange As Range)
With rRange
If .Value > 5000 And .Value < 10000 Then
.Font.Name = "黑体"
.Font.Size = 16
Else
.Font.Name = "宋体"
.Font.Size = 11
End If
End With
End Function
这样当区域中的数值更改或区域中的公式重新计算后,会按照条件自动设置字体和字号。
说明:
1.代码中用到Range.Dependents属性,该属性不能追踪远程引用,因而仅当指定区域中的公式中包含本工作表的引用时有效。
2.添加上述VBA代码后,当指定区域中的内容更改后VBA代码会自动运行,这将导致无法撤消或恢复。


猜你喜欢
- 如何更改虎扑体育app昵称?很多小伙伴在使用虎扑体育app的时候,都会给自己设置一个昵称。昵称用久了,想要更改,该怎么操作?下面就是更改虎扑
- 在PPT演示文稿当中,当幻灯片页数非常多时,或者需要将幻灯片分为几个大部分,该如何将幻灯片分割开来呢,今天就来教大家如何为幻灯片新增节的方法
- win7默认网关不可用怎么解决?默认网关是用于网络相连的系统,可以使得两台设备互相连接。有些win7用户在电脑开启后出现默认网关不可用的提示
- 电脑使用得越久,系统产生的垃圾文件就越多,很多用户在给电脑瘦身清理文件的时候肯定遇到过删除文件提示无法删除,那么在win10无法删除垃圾文件
- 在我们日常的办公中,Excel中能够使大量的数据得以处理,但是Excel中的一些公式是非常复杂而且难记的,所以可以多记一些Excel的小技巧
- 百度卫士是一款网络安全服务软件,为了保护电脑的安全,很多用户都会下载百度卫士,但是一些Win10用户下载了百度卫士之后,觉得不喜欢或者不适用
- 微软在今年7月底发布首个Win10正式版系统,在10月份微软官方宣布Windows10系统安装量达到1.1亿台,其中中国地区超过1000万。
- 如何在Word 2016中使用格式刷复制格式?要完全按照您在Word 2016中所需的方式获取某些文本,可能需要执行几种不同的操作。一旦完美
- 「三指拖移」是 Mac 系统触控板手势功能之一,不得不说这个三指拖移实在是太好用了,不开此功能,真的不习惯。但是有些小伙伴反应,换上新的 M
- 为什么很多用户说Win10 20H2版本千万别更新,20H2到底值不值得更新呢?现在微软已经停止1909版本的服务了,所以很多用户都开始升级
- 据外媒报道,跨苹果平台的音乐应用中的浏览标签已经开始显示一个突出的预告,暗示 Apple Music 即将发布重大声明。在标题“即将到来”(
- 我们的电脑上不可能之后一个浏览器,当我们安装多个浏览器的时候,如何设置自己喜欢的浏览器作为默认浏览器呢?本文就为大家详细介绍win8.1默认
- 一些程序在WIN7下无法运行,可以设为兼容模式运行在有问题的软件的图标(注意不是快捷方式)上点击右键,选择“兼容性疑难解答”。系统会自动检测
- Windows 10将在月底正式发布,但对于这套新系统而言,这仅仅是另一个新的开始,后续微软会不断提供更新,打造新的Windows即服务,比
- 有的时候大家装系统的时候会遇到一些问题,明明按照规定操作了,怎么就不成功了呢,现在我来为大家讲解。1、我用的是雨林木风的启动盘工具制作的,在
- win11是一个全新的系统,与win10相比有了较大的改变,在使用过程中难免会遇到一些问题,如win11连不上手机热点怎么办?下面我们就一起
- Win10的成功从用户的升级热情就可以看出,虽然win10相对于Win8做出了很大的改变,但略显仓促的推出使得后期需要改进的地方还很多,在今
- 内存使用率多少正常,这个需要具体问题具体分析,现在就拿Win7系统来说吧,如果使用是2G内存的情况下,开机基本就能达到50%以上了,随便运行
- 115网盘是非常不错的网盘工具,很多用户想要使用115网盘来找资源,但是不知道怎么查找资源并下载,方法其实很简单,只要在里面搜索自己想要的资
- 在Excel进行公式计算时,有时公式会返回“#N/A ”错误值。计算结果出现“#N/A”错误值主要是因为函数所引用的参数不正确或不匹配。请按