Note: The other languages of the website are Google-translated. Back to English

Hvordan genanvendes automatisk automatisk filter, når data ændres i Excel?

I Excel, når du anvender filtre funktion til at filtrere data, ændres filterresultatet ikke automatisk med dataændringerne i dine filtrerede data. For eksempel, når jeg filtrerer alle æbler fra dataene, ændrer jeg nu en af ​​de filtrerede data til BBBBBB, men resultatet ændres ikke såvel som det viste skærmbillede. Denne artikel vil jeg tale om, hvordan man automatisk anvender automatisk filtrering, når data ændres i Excel.

doc auot opdateringsfilter 1

Anvend automatisk automatisk filter igen, når data ændres med VBA-kode


pil blå højre boble Anvend automatisk automatisk filter igen, når data ændres med VBA-kode

Normalt kan du opdatere filterdataene ved at klikke på funktionen Anvend igen manuelt, men her introducerer jeg en VBA-kode til dig, der automatisk opdaterer filterdata, når data ændres, gør som følger:

1. Gå til det regneark, som du vil opdatere filteret automatisk, når data ændres.

2. Højreklik på arkfanen, og vælg Vis kode fra genvejsmenuen, i poppet ud Microsoft Visual Basic til applikationer vindue, kopier og indsæt følgende kode i det tomme modulvindue, se skærmbillede:

VBA-kode: Anvend automatisk filter igen, når data ændres:

Private Sub Worksheet_Change(ByVal Target As Range)
   Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

doc auot opdateringsfilter 2

Bemærk: I ovenstående kode, Sheet 3 er navnet på arket med det automatiske filter, du bruger, skal du ændre det til dit behov.

3. Og gem derefter og luk dette kodevindue, nu, når du ændrer de filtrerede data, filtre funktion opdateres automatisk med det samme, se skærmbillede:

doc auot opdateringsfilter 3


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (36)
Bedømt 5 ud af 5 · 1 vurderinger
Denne kommentar blev minimeret af moderatoren på webstedet
hej, hvordan kan jeg bruge alt dette i google finans? Tks
Denne kommentar blev minimeret af moderatoren på webstedet
Dejligt.. jeg har virkelig brug for det
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg ønsker en ændring på ét ark for at få flere andre ark til at autofiltrere, hvordan ændrer jeg denne kode? Eksempel: Ark A ændres, hvilket får Ark1, Ark2 og Ark3 til at anvende sit autofilter. Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg gør dette for en front i ark, hvor cellen er sat til = ark1!E6. Det vil ikke anvende filter, når det ændres. Hvis jeg ændrer nummeret på bagsiden, justerer det forsiden, men filtrerer ikke. Hvis du justerer formlen for at filtrere dens kriterier, anvendes den igen. Hvad kan jeg gøre?
Denne kommentar blev minimeret af moderatoren på webstedet
Brug dette
Private Sub Work_Change(ByVal Target As Range)
Activesheet.AutoFilter.ApplyFilter
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg kan slet ikke få det til at virke for mig. Jeg forsøger at tage fra et masterark og få det kun til at tage de job, der gælder for bestemte projektledere på hver fane, der er med deres navne. Jeg vil også have, at den automatisk opdateres, når jeg foretager ændringer.
Denne kommentar blev minimeret af moderatoren på webstedet
denne kommando alle falske gør ingenting. fuldstændig prøve, men ingen brug af.
Denne kommentar blev minimeret af moderatoren på webstedet
Fungerer fantastisk og sparer mig for en masse tid og roderi.. Rigtig godt tip.. Mange tak for din hjælp
Denne kommentar blev minimeret af moderatoren på webstedet
Denne løsning fungerer perfekt. Tak fordi du skrev det! Hvis nogen har problemer, er der et par ting at overveje.

Først kaldes Worksheet_Change-hændelsen ark for ark. Det betyder, at hvis du har flere ark, som har filtre, du skal opdatere, skal du svare på alle disse begivenheder. Én Worksheet_Change subrutine for hvert regneark, ikke én subrutine for hele projektmappen (én undtagelse - se note nedenfor).

For det andet, og en opfølgning på den første, skal koden placeres i det kodemodul, der er specifikt for det regneark, der skal overvåges. Det er nemt (utilsigtet) at skifte kodemoduler, når du kommer ind i VB-editoren, så du skal passe på at placere den specifikt til det ark, du vil overvåge for dataændringer.

For det tredje er dette ubekræftet, men muligvis et fejlpunkt. Eksemplet bruger arknavnene "Sheet1", "Sheet2" osv. Hvis du har omdøbt arkene, skal du muligvis opdatere koden. Bemærk i eksemplet, at Sheet7 har fået navnet "dfdf". Hvis du ville opdatere filteret der, skulle du bruge;
Sheets("dfdf").AutoFilter.ApplyFilter
ikke;
Sheets("Sheet7").AutoFilter.ApplyFilter

Det kan være godt at opdatere artiklen inklusive et eksempel med et omdøbt ark.


Endelig, hvis du vil overvåge ét ark for dataændringer, men opdatere filtre på flere ark, så behøver du kun én underrutine, placeret i kodemodulet i det regneark, du overvåger. Koden vil se nogenlunde sådan her ud;

# (koden skal placeres i regnearket for at blive overvåget for dataændringer)
Privat Sub Worksheet_Change (ByVal Target As Range)
Sheets("Sheet1").AutoFilter.ApplyFilter
Sheets("Sheet2").AutoFilter.ApplyFilter
Sheets("Sheet3").AutoFilter.ApplyFilter
Sheets("Sheet4").AutoFilter.ApplyFilter
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, Mike,
Tak for din detaljerede forklaring.
Denne kommentar blev minimeret af moderatoren på webstedet
God forklaring, tak.

Men hvordan udløser jeg Sheets("Sheet3"). AutoFilter.ApplyFilter, når et nyt ark oprettes?
Da jeg ikke kan skrive den kode, du nævnte, på et ark, der ikke eksisterer endnu
Denne kommentar blev minimeret af moderatoren på webstedet
Fint, tak!
Denne kommentar blev minimeret af moderatoren på webstedet
fungerer som en mester, og så enkelt. mange tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Det virker fantastisk. Kan du fortælle mig, hvordan man gør det samme for Sorter i stedet for Filter, tak?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Chris,
Måske kan følgende artikel løse dit problem, se venligst:

https://www.extendoffice.com/documents/excel/2592-excel-auto-sort-by-value.html

Prøv det!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, det fungerer fint, dog kun når man manuelt ændrer data i tabellen.

Jeg har en "top ti/leader board"-stil filtreret tabel, som er udfyldt fra dataindtastning på et separat regneark (faktisk går dataene gennem 3 regneark, før de kommer til bordet). Når dataene ændres i regnearket til dataindtastning, opdateres tabeltallene i ranglisten, men filteret opdateres ikke automatisk.
Nogle ideer til hvordan man gør det?
Meget taknemmelig.
Alex
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har samme problem med hende. Kan nogen hjælpe os?
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har samme problem. Jeg forsøger at autofiltrere ark 2, der indeholder data, der kommer fra ark 1. det virker kun, hvis jeg ændrer dataene på ark 2, ikke på ark 1.
Nogle tanker om, hvorfor dette ikke virker, og hvordan man løser det?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, det ser ud til at fungere godt, men jeg har problemer, når der er mere end et filter på det samme regneark (faneblad). Jeg konverterede celleområdet til en tabel for at tillade separate og flere filtre i det samme regneark. Dette eksempel ser kun ud til at opdatere en af ​​tabellerne/filtrene. Nogen forslag til, hvordan man opdaterer ALLE tabeller/filtre i et regneark?

Mange tak,

Tom
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Tom,
Koden i denne artikel fungerer godt for flere tabeller i et regneark, du skal bare trykke på Enter-tasten efter at have ændret dataene i stedet for at klikke til en anden celle.
Prøv det venligst.
Denne kommentar blev minimeret af moderatoren på webstedet
terima Kasih

sangat membantu
Denne kommentar blev minimeret af moderatoren på webstedet
Denne kommentar blev minimeret af moderatoren på webstedet
Genialt og nemt at gøre. Tusind tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,

Denne kode fungerer godt, mange tak.

Jeg har dog et lille problem med det - hvis jeg ændrer værdier i en celle, der ikke er en del af tabellen, bliver jeg præsenteret for Runtime-fejl, der siger:

"Kørselsfejl '91':

Objektvariabel eller Med blokvariabel ikke sat op"


Jeg har muligheder for at fejlfinde eller afslutte, mulighed for at fortsætte er nedtonet. Jeg kan klikke på "Afslut", og koden virker stadig, men det er meget irriterende at skulle håndtere dette popup-vindue efter hver ændring.

Er der nogen der har lignende erfaringer eller et forslag til hvordan man kan sortere dette?

Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej David,
For at løse dit problem kan du anvende følgende kode:

Privat Sub Worksheet_Change (ByVal Target As Range)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

Prøv det, håber det kan hjælpe dig!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Skyyang,


Jeg har implementeret din løsning, og den er faktisk rettet.

Thanks a lot!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej jeg har haft det samme problem, indsatte den nye kode og ændrede navnet på arket, men så sker der ikke noget, filteret opdaterer ikke
Denne kommentar blev minimeret af moderatoren på webstedet
samme problem her også, nogen opdateret løsning?
Denne kommentar blev minimeret af moderatoren på webstedet
Kan slet ikke få dette til at virke på office 365
nogen forslag
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, mange tak for hjælpen. Der er noget, der ikke fungerer rigtigt for mig. Her er historien.

Ark1 har variable data. Sheet3 har statiske data og filter. Filterkriterier på "Sheet3" kommer fra Sheet1. Ark1 har data, der kommer fra filtrerede resultater på Ark3.

Ark 3 har kode:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A1:U14").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("A22:U23"), CopyToRange:=Range("A25:U26"), Unique:=False
End Sub

Det fungerer godt, hvis jeg laver noget på Sheet3. Ingen problemer. Tak skal du have!

Først havde jeg kode på Sheet1:

Privat Sub Worksheet_Change (ByVal Target As Range)
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

Hvilket resulterede i fejlen "Runtime error 91, Object Variable or With Block not Set".

Jeg ændrede koden baseret på kommentarer til at være:

Privat Sub Worksheet_Change (ByVal Target As Range)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

Nu får jeg ikke en fejl, men dataene på Sheet3 og derfor Sheet1 ændres ikke. Med andre ord, tilfældet med at anvende filteret på Sheet3 forekommer ikke, når jeg foretager en ændring på Sheet1. Det er lige meget, om jeg slår eller klik på en anden celle efter at have ændret cellen for Sheet3-filterkriterier, der er indstillet på Sheet1.

Som en sidebemærkning forventer jeg, at hvis jeg ville have flere celler på Sheet1, der forårsagede filtre på Sheet 4 og 5 ud over Sheet3, ville jeg have brug for koden på Sheet 1 for at læse:

Privat Sub Worksheet_Change (ByVal Target As Range)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
Sheets("Sheet4").AutoFilter.ApplyFilter
Sheets("Sheet5").AutoFilter.ApplyFilter
End Sub

Tak igen!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,

Dette er en god bid kode tak. Det eneste problem, jeg har, er, at jeg bruger en drop-down på et separat diagramark. Hvis jeg manuelt ændrer værdien i cellen, der er knyttet til rullemenuen, virker det. Men når jeg prøver bare at bruge rullemenuen, opdateres den ikke. nogen tanker?
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har faktisk data fra en anden Excel-fil, der blev importeret i et Excel-ark med navnet "Database". Så importerer jeg disse data i den samme Excel-fil, men i et andet ExcelSheet "Oversigt". Jeg ønsker, når data ændres i den originale kilde, at filteret gælder i arket "Oversigt". Tusind tak for den der kan hjælpe mig :). PS kan ikke bruge VBA i det første excelsark
Der er endnu ingen kommentarer her
Load More
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL