【问题标题】:Excel Macro for filtering用于过滤的 Excel 宏
【发布时间】:2020-04-05 14:58:58
【问题描述】:

我有一个 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】:

    你的意思可能是这样的

    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
    

    【讨论】:

    • 感谢您的回复。不知何故,代码并没有解决我的问题。未应用过滤器。
    • @sagardbhangale 那么您需要编辑您的问题并提供minimal reproducible example,其中包含适当的示例数据和您期望的解释。屏幕截图也可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多