Выкладываю файл по одновременному поиску с столбце с названием KKS на всех листах книги, а также одновременным снятием фильтра. Автор не я - в макросах я нуль, в экселе нуль с плюсом.. Но пользоваться по жизни приходиться экселем часто достаточно..и жизнь он облегчает (экономит время), если хоть чуть им уметь пользоваться. Владелец файла я, поэтому автора не пишу (если автор попросит об этом - сразу его укажу.. благодарен ему за помощь). У меня запускается фильтр Ctrl+q, снимается фильтр Ctrl+w. Есть проблема - на 5 листе макрос не работает.. в чем проблема не знаю
Выкладываю файл по одновременному поиску с столбце с названием KKS на всех листах книги, а также одновременным снятием фильтра. Автор не я - в макросах я нуль, в экселе нуль с плюсом.. Но пользоваться по жизни приходиться экселем часто достаточно..и жизнь он облегчает (экономит время), если хоть чуть им уметь пользоваться. Владелец файла я, поэтому автора не пишу (если автор попросит об этом - сразу его укажу.. благодарен ему за помощь). У меня запускается фильтр Ctrl+q, снимается фильтр Ctrl+w. Есть проблема - на 5 листе макрос не работает.. в чем проблема не знаюovechkin1973
'Одновременный_фильтр_на_нескольких_листах_книги Sub ertert() Dim wsh As Worksheet, r As Range 'Объявляем переменные для искомого текста(FILTRSTRING) Dim FILTRSTRING As String
'для переменной (FILTRSTRING), вызываем InputBox, для инициализации ее (указываем искомый текст) FILTRSTRING = InputBox("Введите KKS или часть KKS для поиска", "Поиск нужного KKS") If FILTRSTRING = vbNullString Then Exit Sub 'нажали кнопку Отмена
'задаем цикл For Each wsh In ThisWorkbook.Worksheets 'ищем значение "KKS" Set r = wsh.Range("A1").CurrentRegion.Rows(1).Find("KKS", LookIn:=xlValues, lookat:=xlWhole) 'если существует стобец "KKS", If Not r Is Nothing Then 'то задаем фильтрацию по значению переменной FILTRSTRING wsh.AutoFilterMode = False wsh.Range("A1").CurrentRegion.AutoFilter Field:=r.Column, Criteria1:="=*" & FILTRSTRING & "*" End If Next wsh End Sub
'Снятие_одновременной_фильрации Sub UNertert() Dim wsh As Worksheet For Each wsh In ThisWorkbook.Worksheets wsh.AutoFilterMode = False Next wsh End Sub
[/vba]
Можно вот так попробовать:
[vba]
Код
Option Explicit
'Одновременный_фильтр_на_нескольких_листах_книги Sub ertert() Dim wsh As Worksheet, r As Range 'Объявляем переменные для искомого текста(FILTRSTRING) Dim FILTRSTRING As String
'для переменной (FILTRSTRING), вызываем InputBox, для инициализации ее (указываем искомый текст) FILTRSTRING = InputBox("Введите KKS или часть KKS для поиска", "Поиск нужного KKS") If FILTRSTRING = vbNullString Then Exit Sub 'нажали кнопку Отмена
'задаем цикл For Each wsh In ThisWorkbook.Worksheets 'ищем значение "KKS" Set r = wsh.Range("A1").CurrentRegion.Rows(1).Find("KKS", LookIn:=xlValues, lookat:=xlWhole) 'если существует стобец "KKS", If Not r Is Nothing Then 'то задаем фильтрацию по значению переменной FILTRSTRING wsh.AutoFilterMode = False wsh.Range("A1").CurrentRegion.AutoFilter Field:=r.Column, Criteria1:="=*" & FILTRSTRING & "*" End If Next wsh End Sub
'Снятие_одновременной_фильрации Sub UNertert() Dim wsh As Worksheet For Each wsh In ThisWorkbook.Worksheets wsh.AutoFilterMode = False Next wsh End Sub