Excel 2010 VBA 入门 035 利用VBA程序定义条件格式 您所在的位置:网站首页 excel中设置是与否条件选择 Excel 2010 VBA 入门 035 利用VBA程序定义条件格式

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

2023-09-12 20:03| 来源: 网络整理| 查看: 265

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实现?

姓名账款到期日付款状况客户141634未付款客户241319已付款客户341447未付款客户441302未付款客户541400未付款客户641368未付款客户741490未付款客户841506已付款客户941333未付款客户1041523未付款客户1141459未付款客户1241433已付款客户1341568未付款客户1441367未付款客户1541275已付款客户1641455已付款客户1741625已付款客户1841381未付款客户1941507已付款客户2041446未付款客户2141591未付款客户2241373未付款客户2341445已付款客户2441445已付款客户2541598已付款客户2641283未付款客户2741382未付款客户2841607未付款客户2941496未付款客户3041342已付款客户3141471已付款客户3241504已付款客户3341394未付款客户3441526未付款客户3541295已付款

 

实现代码 Option Explicit Sub VBA条件格式() Dim RowN As Integer Dim dDate As Date dDate = DateSerial(2013, 5, 1) For RowN = 2 To 36 If Cells(RowN, "B").Value < dDate And Cells(RowN, "C") = "未付款" Then '超期未付款,设置填充色 Columns("A:C").Rows(RowN).Interior.Color = RGB(230, 184, 183) Else '未超期或已付款,设置无填充色 Columns("A:C").Rows(RowN).Interior.Pattern = xlNone End If Next End Sub

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有