Excel宏用于过滤

问题描述 投票:0回答:1

我有一个excel表。我想复制其中一个,在同一列中的表标题处,并粘贴粘贴复制的内容以应用过滤器。我记录了一个如下所示的宏。

[每次运行宏时,它都会将过滤器应用于我在记录宏时使用的单元格“ EVER ELECTRONICS PRIVATE LIMITED”。我希望这可以更改我的活动单元所在的位置。请求帮助。

Sub Filter()
'
' Filter Macro
'
' Keyboard Shortcut: Ctrl+Shift+F
'
    Selection.Copy
    Selection.End(xlUp).Select
    ActiveSheet.Range("$A$1:$Z$81").AutoFilter Field:=3, Criteria1:= _
        "=*EVER ELECTRONICS PRIVATE LIMITED*", Operator:=xlAnd
    ActiveWindow.SmallScroll Down:=-15
End Sub
excel vba filtering autofilter
1个回答
0
投票

您可能是说类似的东西

Sub Filter()
    With Selection
        .Copy
        .End(xlUp).Select
    End with

    ActiveSheet.Range("A1:Z81").AutoFilter Field:=3, Criteria1:="=*" & ActiveCell.Value & "*", Operator:=xlAnd
End Sub

但是请注意,此过滤器固定在Range("A1:Z81")范围内,如果添加数据,它不会动态扩展到该数据。因此,您需要确定最后使用的行LastRow,并使用它来使范围动态化。

Sub Filter()
    With Selection
        .Copy
        .End(xlUp).Select
    End With

    With ActiveSheet
        Dim LastRow As Long
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("A1:Z" & LastRow).AutoFilter Field:=3, Criteria1:="=*" & ActiveCell.Value & "*", Operator:=xlAnd
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.