Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Снять фильтр столбца на всех листах книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Снять фильтр столбца на всех листах книги (Макросы/Sub)
Снять фильтр столбца на всех листах книги
китин Дата: Пятница, 13.01.2017, 12:09 | Сообщение № 1
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Доброго всем времени суток. Собственно вопрос в названии. Возникла необходимость разом снять фильтр со всех( а их 21 лист) листов книги. Попробовал накропать что то самостоятельно, но не хочет работать по всем листам: только на активном.Вопрос: что не так сделал?
[vba]
Код
Sub Макрос1()
  Dim SO As Long, SO1 As Long, sh As Worksheet
  SO = Cells(15, Columns.Count).End(xlToLeft).Column
  SO1 = Cells(Rows.Count, 2).End(xlUp).Row
   For Each sh In ThisWorkbook.Sheets
     If sh.Name <> "План" And sh.Name <> "литье" Then
        
            With sh
              ActiveSheet.Range(Cells(17, 1), Cells(SO1, SO)).AutoFilter Field:=2
            
        
            End With
    End If
    Next sh
    
End Sub
[/vba]


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеДоброго всем времени суток. Собственно вопрос в названии. Возникла необходимость разом снять фильтр со всех( а их 21 лист) листов книги. Попробовал накропать что то самостоятельно, но не хочет работать по всем листам: только на активном.Вопрос: что не так сделал?
[vba]
Код
Sub Макрос1()
  Dim SO As Long, SO1 As Long, sh As Worksheet
  SO = Cells(15, Columns.Count).End(xlToLeft).Column
  SO1 = Cells(Rows.Count, 2).End(xlUp).Row
   For Each sh In ThisWorkbook.Sheets
     If sh.Name <> "План" And sh.Name <> "литье" Then
        
            With sh
              ActiveSheet.Range(Cells(17, 1), Cells(SO1, SO)).AutoFilter Field:=2
            
        
            End With
    End If
    Next sh
    
End Sub
[/vba]

Автор - китин
Дата добавления - 13.01.2017 в 12:09
buchlotnik Дата: Пятница, 13.01.2017, 12:18 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
[vba]
Код

'можно так

Sub Макрос1()
Dim SO As Long, SO1 As Long, sh As Worksheet
SO = Cells(15, Columns.Count).End(xlToLeft).Column
SO1 = Cells(Rows.Count, 2).End(xlUp).Row
For Each sh In ThisWorkbook.Sheets
    If sh.Name <> "План" And sh.Name <> "литье" Then
        
            With sh
            sh.Activate
            ActiveSheet.Range(Cells(17, 1), Cells(SO1, SO)).AutoFilter Field:=2
      
            End With
    End If
    Next sh
    
End Sub
[/vba]


Сообщение отредактировал buchlotnik - Пятница, 13.01.2017, 12:25
 
Ответить
Сообщение[vba]
Код

'можно так

Sub Макрос1()
Dim SO As Long, SO1 As Long, sh As Worksheet
SO = Cells(15, Columns.Count).End(xlToLeft).Column
SO1 = Cells(Rows.Count, 2).End(xlUp).Row
For Each sh In ThisWorkbook.Sheets
    If sh.Name <> "План" And sh.Name <> "литье" Then
        
            With sh
            sh.Activate
            ActiveSheet.Range(Cells(17, 1), Cells(SO1, SO)).AutoFilter Field:=2
      
            End With
    End If
    Next sh
    
End Sub
[/vba]

Автор - buchlotnik
Дата добавления - 13.01.2017 в 12:18
SLAVICK Дата: Пятница, 13.01.2017, 12:22 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
разом снять фильтр со всех

если именно снять со всех тогда вот:
[vba]
Код
Sub d()
On Error Resume Next
For Each sh In ActiveWorkbook.Sheets
    sh.ShowAllData
Next
End Sub
[/vba]
не увидел что по 2-му столбцу....
Тогда так:
[vba]
Код
Sub dd()
Dim sh As Worksheet
On Error Resume Next
For Each sh In ActiveWorkbook.Sheets
    Set fR = sh.AutoFilter.Range
    fR.AutoFilter Field:=2
Next
End Sub
[/vba]
К сообщению приложен файл: 9148151.xlsm (24.1 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
разом снять фильтр со всех

если именно снять со всех тогда вот:
[vba]
Код
Sub d()
On Error Resume Next
For Each sh In ActiveWorkbook.Sheets
    sh.ShowAllData
Next
End Sub
[/vba]
не увидел что по 2-му столбцу....
Тогда так:
[vba]
Код
Sub dd()
Dim sh As Worksheet
On Error Resume Next
For Each sh In ActiveWorkbook.Sheets
    Set fR = sh.AutoFilter.Range
    fR.AutoFilter Field:=2
Next
End Sub
[/vba]

Автор - SLAVICK
Дата добавления - 13.01.2017 в 12:22
китин Дата: Пятница, 13.01.2017, 13:35 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Спасибо всем!!!!!!! все получилось!!!


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеСпасибо всем!!!!!!! все получилось!!!

Автор - китин
Дата добавления - 13.01.2017 в 13:35
Alex_ST Дата: Пятница, 13.01.2017, 14:26 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
[vba]
Код
Sub Reset_All_Sheets_Filters()   ' сброс всех фильтров на всех листах активной книги
   Dim actShName$: actShName = ActiveSheet.Name
   Dim actCelAdr$: actCelAdr = ActiveCell.Address
   Application.ScreenUpdating = False
   Dim wsSh As Worksheet
   On Error Resume Next
   For Each wsSh In Sheets
      If wsSh.AutoFilterMode Then wsSh.ShowAllData
   Next
   Application.ScreenUpdating = True
   Sheets(actShName).Activate: Range(actCelAdr).Activate
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение[vba]
Код
Sub Reset_All_Sheets_Filters()   ' сброс всех фильтров на всех листах активной книги
   Dim actShName$: actShName = ActiveSheet.Name
   Dim actCelAdr$: actCelAdr = ActiveCell.Address
   Application.ScreenUpdating = False
   Dim wsSh As Worksheet
   On Error Resume Next
   For Each wsSh In Sheets
      If wsSh.AutoFilterMode Then wsSh.ShowAllData
   Next
   Application.ScreenUpdating = True
   Sheets(actShName).Activate: Range(actCelAdr).Activate
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 13.01.2017 в 14:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Снять фильтр столбца на всех листах книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!