Excel VBA仅对筛选的行执行命令

时间:2016-02-01 11:43:52

标签: excel vba filter

我有一些代码可以过滤20岁及以上的孩子,并突出他们的年龄黄色。

首先,代码会过滤该人是否为儿童,合作伙伴等,然后是否超过20岁。

但是,我不认为我的代码会这样做!我刚刚有一个实例,数据中根本没有子代,所以我的代码在Child上过滤,没有行可见。

然而,当下一位对20以上的那些进行过滤时,它关闭了过滤器,并突出显示了51的合作伙伴。我希望在没有孩子的情况下不突出显示任何内容。

这是我到目前为止所拥有的。我也担心有时我会得到不同数据的第291行(或者会有更多数据)。我不确定如何不限制我在第3行和第4行中选择的范围?

Dim lastrow As Long
lastrow = Range("X" & Rows.Count).End(xlUp).Row

ActiveSheet.Range("A5:AA291").AutoFilter
ActiveSheet.Range("$A$5:$AA$291").AutoFilter Field:=24, Criteria1:="Child"

Range("AB5") = "Child Age Year/Month"
Range("AB7:AB" & lastrow).Formula = "=DATEDIF(RC[-2],TODAY(),""Y"") & "" Years, "" & DATEDIF(RC[-2],TODAY(),""YM"") & "" Months """
Columns("AB:AB").EntireColumn.AutoFit

Range("AC5") = "Child Age Year Only"
Range("AC7:AC" & lastrow).Formula = "=DATEDIF(RC[-3],TODAY(),""Y"")"
Columns("AC:AC").EntireColumn.AutoFit

Range("AD5") = "Child 21st Birthday"
Range("AD7:AD" & lastrow).Formula = "=DATE(YEAR(RC[-4])+24, MONTH(RC[-4]),DAY(RC[-4]))"
Columns("AD:AD").EntireColumn.AutoFit

Range("A5:AD5").AutoFilter
ActiveSheet.Range("$A$5:$AD$290").AutoFilter Field:=29, Criteria1:=">=20", _
    Operator:=xlAnd

老实说,看看我的代码,我看不到它在哪里找到过滤黄色的20岁以上的人的命令。它确实如此。

任何帮助都会非常感激。

0 个答案:

没有答案