VBA - 如果自动过滤器没有返回任何结果以移动到下一个

时间:2017-01-18 21:19:28

标签: vba excel-vba excel

对不起,这是一个总的noob帖子(还有更多)。决定在2周前在我的工作中承担一些简单的VBA项目而没有任何VBA的知识,这个网站已经有了丰富的知识。我已经建立了一个成功的宏或2但现在我只是对其进行微调。

我想做什么: 我有一个工作表,每次收到时都会有不同的行数。我想为包含某个单词的任何单元格找到(或可能是AutoFilter)列。如果该单词存在,请突出显示该单元格的背景颜色。

我遇到的当前代码遇到的问题是,它只过滤到lastRow的可见单元格,如果结果为零,则选择并填充单元格底部最后一个可见单元格之后的单元格。所以我结束了一大堆颜色。

在过去的一天里,我一直绞尽脑汁。

ActiveSheet.Range("$A$1:$AO$" & lastRow).AutoFilter Field:=15, Operator:= _
    xlFilterValues, Criteria1:=("=*Repromotion*")
    lastRow = Range("O2").End(xlDown).Row
    Range(Range("O2"), Range("O" & lastRow)).Select

With Selection.Interior
    .Pattern = xlSolid
    .PatternColor = 16777215
    .Color = 16776960
    .PatternTintAndShade = 0
End With

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

你可以改变你找到lastrow的方式......而不是下降,从底部开始搜索。

lastRow = Cells(Rows.Count, "O").End(xlUp).Row

您可以添加一个检查,以确保在需要时它不是标题行。