Excel 2010 VBA 入门 035 利用VBA程序定义条件格式

本文介绍了如何使用VBA在Excel中实现条件格式,强调了需要同时处理满足和不满足条件的情况。文章讲解了表示整行数据的方法,推荐使用Columns结合Rows的方式,并讨论了日期函数DateSerial在跨系统兼容性中的重要性。此外,还通过工作表的Change事件解释了如何实现实时更新条件格式。最后,给出了一个具体的例子,即标记超过付款期限的客户。
摘要由CSDN通过智能技术生成

VBA条件格式的原理

    利用VBA实现条件格式设置的过程并不像在Excel工作表中设置单元格条件格式那样方便。在VBA中,对于批量操作,通常需要用循环结构逐个进行。
    此处,初学者一般能够掌握为满足条件的数据设置颜色的语句,但是比较容易忽略未满足条件时的设置语句。在设置条件格式时,实质上包含了两个不同的操作步骤,满足条件设置一种格式,而不满足条件则设置另一种格式,两者缺一不可,反之会造成运行结果的不正确。

表示整行数据的方法

    本例中,需要为整行数据设置单元格格式。通常,可以有几种方法表示某个区域,比较容易想到的是以下形式:

Range("A5:C5")

    行号RowN需要用变量表示,则为

Range("A" & RowN & ":C"  & RowN)

    该表示方法是可行的,但是在众多的文本连接的过程中比较容易出错,而且代码阅读也会造成一些困扰。可以采用Columns结合Rows的方法进行表示,首先用Columns("A:C”)表示A:C列,然后用Rows (RowN)表示该区域的第RowN行。也可以用以下方式表示:

Rows(RowN).Columns(¨A:C")

日期函数DateSerial

   要以变量表示日期201 3年5月1日,可以采用日期数据的标准写法:

#2013-5-1#

    当使用者的系统设置与开发者的系统设置一致时,该方法是正确的。然而,每个人的系统设置不尽相同。在开发者的系统中表示日期“年月日”的格式,可能在使用者的系统中变成了“年日月”,即5月1日可能就成了1月5日,从而造成程序运行的错误。对于比较通用的程序,处理日期就要格外谨慎。因而本例中以函数DateSerial来生成日期表达式,其语法为

DateSerial(year,month,day)

其中,year、month和day为整数,分别表示年、月、日。利用该函数不会产生由于系统设置的不同而造成日期的歧义。

利用工作表事件实时设置格式

    一般地,条件格式的设置程序是需要手动触发的。在日常工作中,条件格式需要根据数据的变化实时计算。开发者通常可以通过工作表的Change事件来实时触发格式设置程序的运行。

示例:

    条件格式是Excel中常用的用于提醒或突出某组数据的重要手段。如图所示,该表为某公司客户付款状况,现需要快速标识超过期限未付款的客户(当前日期为2013年5月1日),该如何用VBA实现?

姓名 账款到期日 付款状况
客户1 41634 未付款
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值