Как да проверя дали е приложен филтър в работен лист в Excel?
За работен лист, който съдържа голямо количество данни, възможно ли е да проверите дали филтрирането е приложено в определена колона или в целия работен лист без ръчна проверка за колоните една по една? В този урок ще ви покажем два VBA кода за справяне с тази задача.
Проверете дали е приложен филтър в определена колона
Проверете дали е приложен филтър в работен лист
Проверете дали е приложен филтър в определена колона
За да проверите дали определена колона е филтрирана, кодът на VBA в този раздел може да ви направи услуга.
1. Отворете работния лист, който искате да проверите дали е приложен филтър в определена колона.
2. Натисни Друг + F11 за да отворите Microsoft Visual Basic за приложения прозорец.
3. В Microsoft Visual Basic за приложения прозорец, кликнете Поставете > Модулии след това копирайте следния VBA код в прозореца Модул (Код).
VBA код: Проверете дали определена колона е филтрирана
Sub IsFilter()
'Updated by Extendoffice 20221025
Dim xWSht As Worksheet
Dim xFNum As Integer
Dim xBol As Boolean
Dim xAF As AutoFilter
Dim xColumn As Integer
xColumn = 3 'Here the number 3 stands for the third column (column C) in the current worksheet
Set xWSht = Application.ActiveSheet
Set xAF = xWSht.AutoFilter
xBol = False
For xFNum = 1 To xAF.Filters.Count
If xAF.Filters(xFNum).On And xAF.Range(1, xFNum).Column = xColumn Then
xBol = True
End If
Next xFNum
If xBol Then
MsgBox "The specified column is filled"
Else
MsgBox "The specified column is not filled"
End If
End Sub
Забележка: В кода на VBA, числото 3 в този ред "xКолона = 3” означава третата колона в текущия работен лист. Ако искате да проверите дали е приложен филтър колона Е, сменете номера 3 да се 5.
4. Натисни F5 ключ за изпълнение на кода.
Ако посочената колона е филтрирана, ще се появи следният диалогов прозорец.
В противен случай ще получите следния диалогов прозорец.
Проверете дали е приложен филтър в работен лист
Ако искате да проверите дали е приложен филтър в работен лист, опитайте кода на VBA в този раздел.
1. Отворете работния лист, който искате да проверите дали е приложен филтър.
2. Натисни Друг + F11 за да отворите Microsoft Visual Basic за приложения прозорец.
3. В Microsoft Visual Basic за приложения прозорец, кликнете Поставете > Модулии след това копирайте следния VBA код в Модул (код) прозорец.
VBA код: Проверете дали е приложен филтър в работен лист
Sub IsFilterInWorkSheet()
'Updated by Extendoffice 20221024
Dim xWSht As Worksheet
Dim xFNum As Integer
Dim xBol As Boolean
Dim xAF As AutoFilter
Dim xColumn As Integer
Set xWSht = Application.ActiveSheet
Set xAF = xWSht.AutoFilter
xBol = False
On Error Resume Next
For xFNum = 1 To xAF.Filters.Count
If xAF.Filters(xFNum).On Then
xBol = True
Exit For
End If
Next xFNum
If xBol Then
MsgBox "Filter is applied in the curren worksheet"
Else
MsgBox "Filter does not apply in the current worksheet"
End If
End Sub
4. След това натиснете F5 за изпълнение на този код, ако работният лист съдържа филтриране, ще получите диалогов прозорец, както следва.
В противен случай ще получите следния диалогов прозорец.
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!