循环通过动态过滤列表

时间:2017-08-18 13:24:16

标签: excel vba excel-vba

如何循环过滤列表中的可见行?我在第一个过滤行中有一个单元格,比如说B列是" Y"。我需要能够将特定列中的所有非隐藏单元格更改为Y.这也需要是动态的,因为列B范围每天都会不同。

基本上,我需要修改此代码:

Range("B2").Select --Where B2 is "Y"

Selection.AutoFill Destination:=Range(*This is where I am unsure*)

2 个答案:

答案 0 :(得分:0)

您只能使用key

来引用可见细胞
SpecialCells

答案 1 :(得分:0)

不确定您在此处尝试使用自动填充功能实现了什么目标,但这可以让您了解如何处理已过滤的单元格...

Dim ws As Worksheet
Dim lr As Long
Dim FillWith As String

Set ws = ActiveSheet    'Change it as per your requirement
lr = ws.UsedRange.Rows.Count
FillWith = ws.Range("B2").Value     'Change it as per your requirement
If ws.FilterMode Then
    If ws.Range("B1:B" & lr).SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
        ws.Range("B2:B" & lr).SpecialCells(xlCellTypeVisible).Value = FillWith
    End If
End If