Vba excel отключить автофильтр

{quote}{login=Электророзетка}{date=28.11.2008 04:50}{thema=}{post}Ребята, а зачем макрос для «Отобразить все»? Мы не ищем легких путей? :)) Не проще кнопку вынести на панель инструментов? Вот тут даже написано как это сделать:

http://www.planetaexcel.ru/tip.php?aid=45

(даже слишком подробно).    
А если нужно не отобразить все, а вообще удалить автофильтр, то у меня кнопке назначен вот такой микромакрос:    

  Sub Remove_Autofilter()  

     Selection.AutoFilter  
End Sub{/post}{/quote}  

  макрос — он для использования в других макросах..   :) это ВАм сразу ясно есть автофильтр на листе или нет, а макросы   — они глупые..  

    хотя и к макросу можно кнопку прикрутить — в общем оно универсальнее..

0 / 0 / 0

Регистрация: 10.12.2015

Сообщений: 10

1

Макрос удаления автофильтра

10.12.2015, 13:54. Показов 19714. Ответов 12


Студворк — интернет-сервис помощи студентам

Добрый день! Пишу макрос для обработки прайса, который мне присылает поставщик. В шапке прайса есть автофильтр, но мне для дальнешей работы с прайсом он только мешает. Не могу написать макрос отключения этого автофильтра. Логика такая — если он есть — выключить, если нету, то и не включать. Помогите, пожалуйста.
И еще вопрос — как удалить столбцы по заданному критерию. Есть таблица, в ней есть как нужные мне столбцы, так и не нужные. Так вот, я хочу удалить ненужные, причем с возможностью задавать название этого (этих) столбца(ов). Заранее спасибо!



0



Апострофф

Заблокирован

10.12.2015, 14:05

2

Цитата
Сообщение от Murrey
Посмотреть сообщение

если он есть — выключить, если нету, то и не включать.

Visual Basic
1
2
3
SUB AutoFilterOFF
Cells.AutoFilter
END SUB



1



0 / 0 / 0

Регистрация: 10.12.2015

Сообщений: 10

10.12.2015, 14:07

 [ТС]

3

Спасибо, но при повторном выполнении он включает фильтр, а мне этого не нужно(



0



Апострофф

Заблокирован

10.12.2015, 14:15

4

включает, но со сброшенными параметрами фильтрации — чем это мешает?



0



0 / 0 / 0

Регистрация: 10.12.2015

Сообщений: 10

10.12.2015, 14:22

 [ТС]

5

В общем-то ничем, просто защита от дальнейших вопрос сотрудников))



0



pashulka

4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

10.12.2015, 14:39

6

Murrey, А если так

Visual Basic
1
If ActiveSheet.AutoFilterMode = True Then ActiveSheet.Cells.AutoFilter

или

Visual Basic
1
If Not ActiveSheet.AutoFilter Is Nothing Then ActiveSheet.Cells.AutoFilter



1



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

10.12.2015, 17:07

7

Murrey,

Visual Basic
1
activesheet.autofiltermode=false



1



0 / 0 / 0

Регистрация: 10.12.2015

Сообщений: 10

11.12.2015, 05:51

 [ТС]

8

Добавлено через 49 секунд
pashulka, Спасибо, работает!



0



0 / 0 / 0

Регистрация: 10.12.2015

Сообщений: 10

11.12.2015, 07:17

 [ТС]

9

Поискал по форуму, подходящих вариантов не нашел. Нужно удалять столбцы из таблицы. Во вложении пример. Как удалить по заданному параметру, например, мне не нужен столбец Код, Фото, Артикул.



0



0 / 0 / 0

Регистрация: 10.12.2015

Сообщений: 10

11.12.2015, 07:57

 [ТС]

10

И еще вдогонку вопрос. Я копирую данные с одной книги в другую. Скопировать нужно в ячейку, которая находится на одну ячейку ниже диапазона «код». Как это описать в макросе?



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

11.12.2015, 13:45

11

Цитата
Сообщение от Murrey
Посмотреть сообщение

Нужно удалять столбцы из таблицы. подходящих вариантов не нашел

Удалить столбцы с определенным заголовком — VBA
Макрос в Excel 2003 на удаление определенных столбцов — VBA

Добавлено через 5 минут

Цитата
Сообщение от Murrey
Посмотреть сообщение

Скопировать нужно в ячейку, которая находится на одну ячейку ниже диапазона «код»

Цитата
Сообщение от Murrey
Посмотреть сообщение

например, мне не нужен столбец Код

Так код — это заголовок(шапка) столбца, который Вы удалите или именованный диапазон ? Если первое, то зачем что-то сначала копировать, если всё равно потом удалять.



0



0 / 0 / 0

Регистрация: 10.12.2015

Сообщений: 10

11.12.2015, 13:54

 [ТС]

12

С копированием разобрался, а вот с удалением столбцов не очень. Код — это который в шапке таблицы. Смысл в том, чтобы удалять ненужные столбцы по их заголовку в шапке. Например, мне не нужен столбец Страна, я его удаляю.



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

11.12.2015, 15:51

13

Murrey, Перейдите, например, по первой ссылке и просто перечислите все свои ненужные столбцы (строка#3)



0



Return to VBA Code Examples

VBA – Turn Off AutoFilter / Clear Filters

In this Article

  • Turn off AutoFilter in the Active Worksheet in VBA
  • Turn on AutoFilter in the Active Worksheet in VBA
  • Turn off AutoFilter in all Worksheets in VBA.
  • Turn on AutoFilter in all Worksheets in VBA.
  • Clear All Filters in the Active Worksheet in VBA
  • Clear All Filters in all Worksheets in VBA
  • Clear All Filters in a Table in VBA
  • VBA Coding Made Easy

This tutorial will demonstrate how to turn off /clear AutoFilters in VBA.

AutoFilters can be turned on or off using VBA code.

Turn off AutoFilter in the Active Worksheet in VBA

The following code example turns off AutoFilter in the Active Sheet, checking first that it’s not Off already.

Public Sub KillFilter()
  If ActiveSheet.AutoFilterMode Then
     ActiveSheet.AutoFilterMode = False
  End If
End Sub

Turn on AutoFilter in the Active Worksheet in VBA

The following code example turns on AutoFilter in the Active Sheet, checking first that it’s not on already.

Public Sub StartFilter()
  If Not ActiveSheet.AutoFilterMode Then
     ActiveSheet.Range("A1").AutoFilter
  End If
End Sub

Turn off AutoFilter in all Worksheets in VBA.

The following code example loops through each sheet in the entire workbook and turns off AutoFilter in each worksheet, checking first that the filter in the current worksheet is not on already.

Public Sub StopAllFilters()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If ws.AutoFilterMode = True Then
      ws.AutoFilterMode = False
    End If
  Next ws
End Sub

Turn on AutoFilter in all Worksheets in VBA.

Similarly, the following code example loops through the entire workbook and turns on AutoFilter in each sheet, checking first that the filter in the current worksheet is not already on.

Public Sub StartAllFilters()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If Not ws.AutoFilterMode Then
      ws.Range("A1").AutoFilter
    End If
  Next ws
End Sub

Clear All Filters in the Active Worksheet in VBA

The following code example leaves the AutoFilter turned on in the Active Sheet, but clears any filter that are applied to the data.

Public Sub ClearFilter()
  If ActiveSheet.FilterMode = True Then
    ActiveSheet.ShowAllData
  End If
End Sub

Clear All Filters in all Worksheets in VBA

Similarly, the following code example loops through the entire workbook and leaves the AutoFilter turned on in each sheet if it is already on, but clears any filter that are applied to the data.

Public Sub ClearAllFilters()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If ws.FilterMode = True Then
      ws.ShowAllData
    End If
  Next ws
End Sub

Clear All Filters in a Table in VBA

Should our worksheet contain a table object, we can adjust the code to just clear any filter that is applied to that filter, while leaving the AutoFilter switched on.

Sub ClearFilterFromTable()
  Dim ws As Worksheet
  Dim sTable As String
  Dim loTable As ListObject
  sTable = "Table1"
  Set ws = ActiveSheet
  Set loTable = ws.ListObjects(sTable)
  loTable.AutoFilter.ShowAllData
End Sub

Should the table object be linked to a Pivot Table, then the Pivot table would refresh accordingly.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro – A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

alt text

Learn More!

Содержание

  • Отключите автофильтр на активном листе в VBA
  • Включите автофильтр на активном листе в VBA
  • Отключите автофильтр на всех листах в VBA.
  • Отключите автофильтр на всех листах в VBA.
  • Очистить все фильтры на активном листе в VBA
  • Очистить все фильтры на всех листах в VBA
  • Очистить все фильтры в таблице в VBA

В этом руководстве будет показано, как отключить / очистить автофильтры в VBA.

Автофильтры можно включить или выключить с помощью кода VBA.

В следующем примере кода автофильтр отключается на активном листе, сначала проверяя, что он еще не отключен.

12345 Public Sub KillFilter ()Если ActiveSheet.AutoFilterMode, тоActiveSheet.AutoFilterMode = FalseКонец, еслиКонец подписки

Включите автофильтр на активном листе в VBA

В следующем примере кода включается автофильтр на активном листе, сначала проверяя, что он еще не включен.

12345 Общедоступный подпункт StartFilter ()Если не ActiveSheet.AutoFilterMode, тоActiveSheet.Range («A1»). АвтофильтрКонец, еслиКонец подписки

Отключите автофильтр на всех листах в VBA.

В следующем примере кода выполняется цикл по каждому листу во всей книге и отключается автофильтр на каждом листе, сначала проверяя, что фильтр в текущей книге еще не включен.

12345678 Публичная подпрограмма StopAllFilters ()Dim ws как рабочий листДля каждой страницы в ActiveWorkbook.WorksheetsЕсли ws.AutoFilterMode = True, тоws.AutoFilterMode = FalseКонец, еслиСледующий wsКонец подписки

Отключите автофильтр на всех листах в VBA.

Точно так же в следующем примере кода выполняется цикл по всей книге и включается автофильтр на каждом листе, сначала проверяя, что фильтр в текущей книге еще не включен.

12345678 Публичная подпрограмма StartAllFilters ()Dim ws как рабочий листДля каждой страницы в ActiveWorkbook.WorksheetsЕсли не ws.AutoFilterMode, тоws.Range («A1»). АвтофильтрКонец, еслиСледующий wsКонец подписки

Очистить все фильтры на активном листе в VBA

В следующем примере кода автофильтр остается включенным на активном листе, но очищаются все фильтры, примененные к данным.

12345 Public Sub ClearFilter ()Если ActiveSheet.FilterMode = True, тоActiveSheet.ShowAllDataКонец, еслиКонец подписки

Очистить все фильтры на всех листах в VBA

Точно так же в следующем примере кода выполняется цикл по всей книге и оставляет включенным автофильтр на каждом листе, если он уже включен, но очищает любой фильтр, примененный к данным.

12345678 Публичная подпрограмма ClearAllFilters ()Dim ws как рабочий листДля каждой страницы в ActiveWorkbook.WorksheetsЕсли ws.FilterMode = True, тоws.ShowAllDataКонец, еслиСледующий wsКонец подписки

Очистить все фильтры в таблице в VBA

Если наш рабочий лист содержит объект таблицы, мы можем настроить код, чтобы просто очистить любой фильтр, примененный к этому фильтру, оставив автофильтр включенным.

123456789 Подложка ClearFilterFromTable ()Dim ws как рабочий листDim sTable As StringDim loTable как ListObjectsTable = «Таблица1″Установить ws = ActiveSheetУстановите loTable = ws.ListObjects (sTable)loTable.AutoFilter.ShowAllDataКонец подписки

Если объект таблицы будет связан со сводной таблицей, то сводная таблица обновится соответствующим образом.

Вы поможете развитию сайта, поделившись страницей с друзьями

VBA remove filter from table in Excel. In this tutorial we learn how to remove or clear or delete filter from table. We use AutoFilter and ShowAllData method. It helps to show or display complete data for table. Let us see syntax, different examples using VBA. Also find and learn step by step instructions to run vba example macro code.

Table of Contents:

  • Objective
  • VBA Syntax to Remove Filter from Table in Excel
  • VBA Remove Filter from Table
  • VBA Delete Filter on Single Column from Table
  • Clear Filter on Multiple Columns From Table
  • VBA Clear All Filters from All Tables on Worksheet
  • Clear All Filters from All Tables on the Workbook
  • Instructions to Run VBA Macro Code
  • Other Useful Resources

VBA Syntax to Remove or Clear Filter from Table in Excel

Let us see the syntax to remove filter from table in Excel.

expression.AutoFilter.ShowAllData

Where
expression represents ListObject.
AutoFilter represents object.
ShowAllData represents method of the AutoFilter object.

VBA Remove Filter from Table

Here is a simple example macro to remove filter from table.

'Remove Filter from Table in Excel VBA
Sub VBAF1_Remove_filter_from_Table()
    
    'Declare Variables
    Dim oSheetName As Worksheet
    Dim sTableName As String
    Dim loTable As ListObject
    
    'Define Variable
    sTableName = "MyTable"
    
    'Define WorkSheet object
    Set oSheetName = Sheets("Table")
        
     'Define Table Object
    Set loTable = oSheetName.ListObjects(sTableName)
        
    'Add filter to table
    loTable.AutoFilter.ShowAllData
    
End Sub

Delete Filter on Single Column from Table

Let us see another example delete filter on single column from table in Excel VBA. Here we have to specify column number to delete filter from table.

'VBA Delete Filter on Single Column from Table
Sub VBAF1_Delete_filter_OnSingle_Column_from_table()
    
    'Declare Variables
    Dim oSheetName As Worksheet
    Dim sTableName As String
    Dim loTable As ListObject
    
    'Define Variable
    sTableName = "MyTable"
    
    'Define WorkSheet object
    Set oSheetName = Sheets("Table")
        
     'Define Table Object
    Set loTable = oSheetName.ListObjects(sTableName)
        
    'Add filter to table
    loTable.Range.AutoFilter Field:=3
    
End Sub

Clear Filter on Multiple Columns From Table in Excel VBA

Here is one more example clear filter on multiple columns from table in Excel VBA. Here we have to specify multiple column numbers to clear filter from table.

'Clear Filter on Multiple Columns From Table
Sub VBAF1_Clear_filter_OnMultiple_Columns_From_Table()
    
    'Declare Variables
    Dim oSheetName As Worksheet
    Dim sTableName As String
    Dim loTable As ListObject
    
    'Define Variable
    sTableName = "MyTable"
    
    'Define WorkSheet object
    Set oSheetName = Sheets("Table")
        
     'Define Table Object
    Set loTable = oSheetName.ListObjects(sTableName)
        
    loTable.Range.AutoFilter Field:=2
    loTable.Range.AutoFilter Field:=3
              
End Sub

VBA Clear All Filters from All Tables on Worksheet in Excel

Let us see another example to clear filters from all tables on worksheet in Excel VBA. We loop through all the tables worksheets on the worksheet.

'VBA Clear All Filters from All Tables on Worksheet
Sub VBAF1_Clear_All_Filters_From_All_Tables_OnWorksheet()
    
    'Declare Variables
    Dim oSheetName As Worksheet
    Dim loTable As ListObject
   
    'Define WorkSheet object
    Set oSheetName = Sheets("Table")
           
    'Loop Through All Tables on the Worksheet
    For Each loTable In oSheetName.ListObjects
    
      'Clear Filter from the Table
      loTable.AutoFilter.ShowAllData
      
    Next loTable
     
End Sub

Clear All Filters from All Tables on the Workbook using VBA

One more example to clear filters from all tables on the worksheet using Excel VBA. We loop through all the tables in all worksheets on the worksheet.

'Clear All Filters from All Tables on the Workbook
Sub VBAF1_Clear_All_Filters_From_All_Tables_InWorkbook()
    
    'Declare Variables
    Dim oSheetName As Worksheet
    Dim loTable As ListObject
       
    'Loop Through All Tables in the Workbook
    For Each oSheetName In Worksheets
    
        'Loop Through All Tables on the Worksheet
        For Each loTable In oSheetName.ListObjects
        
          'Clear Filter from the Table
          loTable.AutoFilter.ShowAllData
          
        Next loTable
    Next oSheetName
    
End Sub

Instructions to Run VBA Macro Code or Procedure:

You can refer the following link for the step by step instructions.

Instructions to run VBA Macro Code

Other Useful Resources:

Click on the following links of the useful resources. These helps to learn and gain more knowledge.

VBA Tutorial VBA Functions List VBA Arrays in Excel VBA Tables and ListObjects

VBA Editor Keyboard Shortcut Keys List VBA Interview Questions & Answers Blog

Понравилась статья? Поделить с друзьями:
  • Vba excel отбросить дробную часть
  • Vba excel остановить таймер
  • Vba excel остановить процедуру
  • Vba excel остановить выполнение цикла
  • Vba excel остановить выполнение программы