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

Hogyan lehet automatikusan újra alkalmazni az automatikus szűrést, amikor az adatok megváltoznak az Excel programban?

Az Excel alkalmazásban a Szűrő funkció az adatok szűrésére, a szűrési eredmény nem változik automatikusan a szűrt adatokban bekövetkező adatok változásával. Például, amikor az összes almát kiszűröm az adatokból, most az egyik szűrt adatot BBBBBB-re változtatom, de az eredmény nem változik annyira, mint a bemutatott képernyőképen. Ebben a cikkben arról fogok beszélni, hogyan lehet automatikusan alkalmazni az automatikus szűrést, amikor az adatok megváltoznak az Excel programban.

doc auot 1. szűrő frissítése

Automatikusan alkalmazza az automatikus szűrőt, amikor az adatok VBA kóddal változnak


nyíl kék jobb buborék Automatikusan alkalmazza az automatikus szűrőt, amikor az adatok VBA kóddal változnak

Normál esetben a szűrőadatokat úgy frissítheti, hogy manuálisan rákattint az Újra alkalmazás funkcióra, de itt bemutatok egy VBA-kódot, amely az adatok változásakor automatikusan frissíti a szűrőadatokat, kérjük, tegye a következőket:

1. Lépjen arra a munkalapra, amelyen automatikusan frissíteni kívánja a szűrőt, amikor az adatok megváltoznak.

2. Kattintson a jobb gombbal a lap fülre, és válassza a lehetőséget Kód megtekintése a helyi menüből, a kiugrottban Microsoft Visual Basic for Applications ablakba, kérjük, másolja és illessze be a következő kódot az üres Modul ablakba, lásd a képernyőképet:

VBA kód: A szűrő automatikus alkalmazása, ha az adatok megváltoznak:

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

doc auot 2. szűrő frissítése

Megjegyzések: A fenti kódban Sheet 3 az ön által használt automatikus szűrővel ellátott lap neve, kérjük, változtassa meg igénye szerint.

3. Ezután mentse el és zárja be ezt a kódablakot, most, amikor megváltoztatja a szűrt adatokat, a Szűrő a funkció egyszerre automatikusan frissül, lásd a képernyőképet:

doc auot 3. szűrő frissítése


A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2021 és 365 verziókat. Minden nyelvet támogat. Könnyű üzembe helyezés vállalatában vagy szervezetében. Teljes funkciók 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte lap 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (36)
Az 5-t az 5-ből kiértékelte · 1 értékelés
A weboldal moderátora ezt a megjegyzést minimalizálta
hello, hogyan használhatom mindezt a google pénzügyben? Tks
A weboldal moderátora ezt a megjegyzést minimalizálta
Szép.. tényleg szükségem van rá
A weboldal moderátora ezt a megjegyzést minimalizálta
Szeretnék módosítani egy lapon, hogy több másik munkalap automatikus szűrését okozza. Hogyan változtathatom meg ezt a kódot? Pl.: Az A munkalap módosul, ami azt eredményezi, hogy az 1., a 2. és a 3. munkalap alkalmazza az automatikus szűrőt. Kösz!
A weboldal moderátora ezt a megjegyzést minimalizálta
Ezt a munkalap elejére teszem, ha a cella értéke =lap1!E6. Változáskor nem alkalmaz szűrőt. Ha megváltoztatom a számot a hátsó lapon, akkor beállítja az elsőt, de nem szűr. Ha módosítja a képletet a szűrési feltételekhez, az újra érvényesül. Mit tehetek?
A weboldal moderátora ezt a megjegyzést minimalizálta
Használja ezt
Private Sub Work_Change (ByVal Target As Range)
Activesheet.AutoFilter.ApplyFilter
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Egyáltalán nem tudom, hogy ez működjön nekem. Megpróbálok egy mesterlapról átvenni, és csak azokat a munkákat fogadja el, amelyek bizonyos projektmenedzserekre vonatkoznak az egyes lapokon, amelyek a nevükkel együtt vannak. Azt is szeretném, hogy automatikusan frissüljön, amikor változtatásokat hajtok végre.
A weboldal moderátora ezt a megjegyzést minimalizálta
ez a parancs minden hamis, ne csinálj semmit. teljesen megpróbálom, de semmi haszna.
A weboldal moderátora ezt a megjegyzést minimalizálta
Remekül működik, és sok időt takarítok meg, és sok vesződést takarítok meg... Igazán remek tipp.. Nagyon köszönöm a segítséget
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez a megoldás tökéletesen működik. Köszönöm, hogy leírtad! Ha valakinek gondja van, néhány dolgot figyelembe kell vennie.

Először a Worksheet_Change eseményt laponként hívják meg. Ez azt jelenti, hogy ha több olyan munkalapja van, amelyen frissíteni kell a szűrőket, akkor válaszolnia kell az összes eseményre. Egy Worksheet_Change szubrutin minden munkalaphoz, nem egy alprogram a teljes munkafüzethez (egy kivétel – lásd lentebb).

Másodszor, és az első folytatásaként a kódot a figyelni kívánt munkalaphoz tartozó kódmodulba kell elhelyezni. Könnyű (véletlenül) váltani a kódmodulok között, miután belép a VB-szerkesztőbe, ezért ügyelni kell arra, hogy pontosan arra a lapra helyezze, amelyen az adatváltozásokat figyelni szeretné.

Harmadszor, ez nem megerősített, de valószínűleg hiba. A példa a következő munkalapneveket használja: "Munkalap1", "Munkalap2" stb. Ha átnevezte a lapokat, előfordulhat, hogy frissítenie kell a kódot. Megjegyzés: a példában a Sheet7 a „dfdf” nevet kapta. Ha frissíteni szeretné a szűrőt, akkor a következőt kell használnia:
Sheets("dfdf").AutoFilter.ApplyFilter
nem;
Sheets("Sheet7").AutoFilter.ApplyFilter

Érdemes lehet frissíteni a cikket, beleértve egy példát egy átnevezett lappal.


Végül, ha egy munkalapon szeretné figyelni az adatváltozásokat, de több lapon frissíti a szűrőket, akkor csak egy szubrutinra van szüksége, amelyet a megfigyelt munkalap kódmoduljában kell elhelyezni. A kód valahogy így fog kinézni;

# (kódot kell elhelyezni a munkalapon, hogy figyeljük az adatváltozásokat)
Private Sub Worksheet_Change (ByVal Target mint Range)
Sheets("Sheet1").AutoFilter.ApplyFilter
Sheets("Sheet2").AutoFilter.ApplyFilter
Sheets("Sheet3").AutoFilter.ApplyFilter
Sheets("Sheet4").AutoFilter.ApplyFilter
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
szia Mike,
Köszönöm a részletes magyarázatot.
A weboldal moderátora ezt a megjegyzést minimalizálta
Remek magyarázat, köszönöm.

De hogyan aktiválhatom a Sheets("Sheet3").AutoFilter.ApplyFilter alkalmazást új munkalap létrehozásakor?
Mivel az általad említett kódot nem tudom felírni egy még nem létező lapra
A weboldal moderátora ezt a megjegyzést minimalizálta
Nagyszerű köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
úgy működik, mint egy bajnok, és olyan egyszerű. nagyon szépen köszönjük!
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez nagyszerűnek tűnik. Meg tudná mondani, hogyan teheti meg ugyanezt a rendezésnél a szűrés helyett?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Chris,
Lehetséges, hogy a következő cikk megoldhatja problémáját, kérjük, tekintse meg:

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

Próbáld ki!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, ez remekül működik, de csak akkor, ha manuálisan módosítja az adatokat a táblázatban.

Van egy „legjobb tíz/ranglista” stílusú szűrt táblám, amely adatbevitelből van feltöltve egy külön munkalapon (valójában az adatok 3 munkalapon mennek keresztül, mielőtt a táblázatba kerülnének). Amikor az adatbeviteli munkalapon megváltoznak az adatok, a ranglista táblázatban az adatok frissülnek, azonban a szűrő nem frissít automatikusan.
Van valami ötletetek, hogyan kell ezt csinálni?
Hálás.
Alex
A weboldal moderátora ezt a megjegyzést minimalizálta
Nekem is hasonló problémám van. Tud valaki segíteni nekünk?
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanez a problémám. Megpróbálom automatikusan szűrni a 2. lapot, amely az 1. lapról származó adatokat tartalmaz. csak akkor működik, ha a 2. lapon módosítom az adatokat, az 1. lapon nem.
Van valami ötletetek, hogy miért nem működik, és hogyan lehetne javítani?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Úgy tűnik, ez remekül működik, de problémáim vannak, amikor egynél több szűrő van ugyanazon a munkalapon (lapon). A cellák tartományát táblázattá alakítottam, hogy lehetővé tegyem külön és több szűrő használatát ugyanazon a munkalapon. Úgy tűnik, hogy ez a példa csak az egyik táblázatot/szűrőt frissíti. Van valami javaslata az ÖSSZES tábla/szűrő frissítésére egy munkalapon?

Nagyon köszönöm,

Tomi
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Tom
A cikkben szereplő kód jól működik egy munkalapon belüli több tábla esetén, csak az Enter billentyűt kell lenyomnia az adatok módosítása után, ahelyett, hogy másik cellára kattintana.
Kérjük, próbálja ki.
A weboldal moderátora ezt a megjegyzést minimalizálta
terima Kasih

sangat membantu
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez nem működik a lista kiválasztásán alapuló szűrővel https://www.extendoffice.com/documents/excel/4113-excel-filter-based-on-list-selection.html
A weboldal moderátora ezt a megjegyzést minimalizálta
Zseniális és egyszerűen elkészíthető. Köszönöm szépen!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,

Ez a kód remekül működik, köszönöm szépen.

Van azonban egy kis problémám vele – ha értéket változtatok bármely olyan cellában, amely nem része a táblázatnak, futásidejű hibaüzenet jelenik meg a következővel:

"Futtatási hiba '91":

Objektumváltozó vagy A blokkváltozó nincs beállítva"


Lehetőségem van a Debug vagy End lehetőségre, a Folytatás opció szürkén jelenik meg. Rákattinthatok az "End"-re, és a kód továbbra is működik, de nagyon bosszantó, hogy minden változtatás után ezzel a felugró ablakkal kell foglalkoznom.

Van valakinek hasonló tapasztalata vagy javaslata, hogy hogyan lehetne ezt megoldani?

Köszönjük!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia David,
A probléma megoldásához alkalmazhatja a következő kódot:

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

Próbáld ki, remélem tud segíteni!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Skyyang,


Megvalósítottam a megoldásodat, és valóban javítva van.

Nagyon köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló, ugyanez a problémám volt, beillesztettem az új kódot és megváltoztattam a lap nevét, de akkor nem történik semmi, a szűrő nem frissül
A weboldal moderátora ezt a megjegyzést minimalizálta
itt is ugyanaz a probléma, van valami frissített megoldás?
A weboldal moderátora ezt a megjegyzést minimalizálta
Office 365-ön ez egyáltalán nem működik
valami javaslat
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, köszönöm szépen a segítséget. Valami nem működik jól nekem. Íme a történet.

Az 1. munkalap változó adatokat tartalmaz. A 3. lap statikus adatokat és szűrőt tartalmaz. A „Sheet3” szűrési feltételei az 1. munkalapból származnak. Az 1. munkalap olyan adatokat tartalmaz, amelyek a 3. munkalap szűrt eredményeiből származnak.

A 3. lap kódja:

Private Sub Worksheet_SelectionChange (ByVal Target as Range)
Tartomány("A1:U14").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Tartomány("A22:U23"), CopyToRange:=Tartomány("A25:U26"), Egyedi:=Hamis
End Sub

Remekül működik, ha bármit csinálok a Sheet3-on. Nincs probléma. Köszönöm!

Eleinte a Sheet1-en volt kódom:

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

Ami a "91-es futásidejű hiba, objektumváltozó vagy a blokk nincs beállítva" hibát eredményezett.

A kódot a megjegyzések alapján a következőre változtattam:

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

Most nem kapok hibát, de a Sheet3 és így a Sheet1 adatok nem változnak. Más szóval, a szűrő alkalmazása a 3. munkalapon nem történik meg, amikor módosítom a Munkalap1-et. Nem számít, ha ütök vagy kattintson egy másik cellára, miután megváltoztatta a Munkalap3 szűrőfeltétel celláját, amely az 1. munkalapon van beállítva.

Félretéve, arra számítok, hogy ha több olyan cellát szeretnék az 1. munkalapon, amelyek a 4. munkalapon kívül a 5. és 3. munkalapon is szűrőket okoztak, szükségem lesz az 1. munkalapon lévő kódra, hogy olvassa el:

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

Köszönöm mégegyszer!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,

Ez egy nagyszerű kódrészlet, köszönöm. Az egyetlen problémám az, hogy egy külön diagramlapon lévő legördülő listát használok. Ha manuálisan módosítom az értéket a legördülő listához tartozó cellában, akkor működik. De amikor megpróbálom a legördülő menüt használni, nem frissül. Bármi hozzáfűznivaló?
A weboldal moderátora ezt a megjegyzést minimalizálta
Valójában vannak adataim egy másik Excel-fájlból, amelyet Excel-táblázatba importáltak „Adatbázis” néven. Ezután importálom ezeket az adatokat ugyanabba az Excel fájlba, de egy másik Excel Sheet "Áttekintés"-be. Azt szeretném, ha az adatok megváltoznak az eredeti forrásban, hogy a szűrő érvényesüljön az "Áttekintés" lapon. Előre is köszönöm annak aki tud segíteni :). A PS nem tudja használni a VBA-t az első Excel-táblázatban
Még senki sem írt megjegyzést
Több ingatlan
Hagyja meg észrevételeit
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi