Искать заголовок столбца, а затем фильтровать все листы, используя макрос - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь отфильтровать все листы на основе определенного заголовка столбца с именем «Код 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 голосов
/ 04 июля 2019

Я сделал что-то подобное для работы.Все, что я делал, это записывал макрос моей фильтрации 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.Используйте относительную ссылку при записи вашего макроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...