搜索列标题,然后使用宏过滤所有工作表

时间:2019-07-03 20:42:53

标签: excel vba

我正在尝试基于名为“ LOC代码”的特定列标题过滤所有工作表。该标题不会出现在工作表的同一列号上。 如何找到所需的列,然后按一系列条件过滤? 谢谢!

我已使用以下代码进行过滤,但它仅基于字段的位置(“ 10”)而没有列标题。

Sub AllSheetsAutofilter()

    Dim p As Integer, q As Integer
    p = Worksheets.Count
    For q = 1 To p
        With Worksheets(q)
            .Range("A1").AutoFilter Field:=10, _
                Criteria1:=Array("ABM", "AC8"), Operator:=xlFilterValues
        End With
    Next q
End Sub

1 个答案:

答案 0 :(得分:0)

我做了类似的工作。我所做的只是在每个选项卡中记录了一个宏过滤LOC的宏。

如果您只需要使用一次,那么您将发现它没有用。

如果要多次使用它,并且在每个选项卡上,LOC始终位于同一位置(在其他选项卡上可以不同),您可能会发现它很有用。关于LOC位置,我的意思是,对于选项卡1,如果LOC始终在第2列中,对于选项卡2,LOC始终在第4列中,则可以使用它。

编辑

以下是您可能想尝试的其他一些技巧。可以将LOC列切割并放在A列中吗?如果是这样,这将是一个好的开始。我已经测试了一张纸。您只需要添加某种类型的代码即可为工作簿中的每个工作表运行它。如果这是适合您的解决方案,我可以为您找到该代码。

Sub Macro7()
Cells.Find(What:="LOC", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Range("A1").Select
Selection.Insert Shift:=xlToRight
End Sub

我启动了另一个可能的解决方案,您可以尝试完成。记录您执行以下操作的宏:搜索LOC。过滤LOC。录制宏时,请使用相对参考。