Hur kontrollerar jag om ett filter används i ett kalkylblad i Excel?
För ett kalkylblad innehåller en stor mängd data, är det möjligt att kontrollera om filtrering tillämpas i en angiven kolumn eller i hela kalkylbladet utan att manuellt kontrollera kolumnerna en efter en? I den här handledningen kommer vi att visa dig två VBA-koder för att hantera denna uppgift.
Kontrollera om ett filter används i en viss kolumn
Kontrollera om ett filter används i ett kalkylblad
Kontrollera om ett filter används i en viss kolumn
För att kontrollera om en viss kolumn är filtrerad kan VBA-koden i det här avsnittet göra dig en tjänst.
1. Öppna det kalkylblad du vill kontrollera om ett filter används i en viss kolumn.
2. tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.
3. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna, och kopiera sedan följande VBA-kod i fönstret Module (Code).
VBA-kod: Kontrollera om en angiven kolumn är filtrerad
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
Anmärkningar: I VBA-koden, numret 3 i den här raden "xkolumn = 3” står för den tredje kolumnen i det aktuella kalkylbladet. Om du vill kontrollera om ett filter används i kolumn E, ändra numret 3 till 5.
4. tryck på F5 för att köra koden.
Om den angivna kolumnen filtreras kommer följande dialogruta att dyka upp.
Annars får du följande dialogruta.
Kontrollera om ett filter används i ett kalkylblad
Om du vill kontrollera om ett filter används i ett kalkylblad, prova VBA-koden i det här avsnittet.
1. Öppna det kalkylblad du vill kontrollera om ett filter har tillämpats.
2. tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.
3. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna, och kopiera sedan följande VBA-kod i Modul (kod) fönster.
VBA-kod: Kontrollera om ett filter används i ett kalkylblad
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. Tryck sedan på F5 för att köra den här koden, om kalkylbladet innehåller filtrering får du en dialogruta enligt följande.
Annars får du följande dialogruta.
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!