Microsoft Excel umożliwia filtrowanie danych. Jest to przydatna funkcja, która może pomóc w zrozumieniu dużych ilości danych. Jeśli nie masz technicznej wiedzy potrzebnej do utworzenia bazy danych, ta funkcja uratuje życie. Filtry są dość podstawowe i pozwalają na uwzględnienie lub wykluczenie danych z kolumny. Filtr rozszerza się i ma zastosowanie również do wartości danych w odpowiednich wierszach. To, czego filtr nie robi, to automatyczna aktualizacja. Jeśli wartość w przefiltrowanej kolumnie zmieni się z powodu ręcznej aktualizacji lub użycia formuły, należy ponownie zastosować filtry. Prosty fragment kodu umożliwia aktualizację odfiltrowanych kolumn w locie.
Będziesz musiał włączyć makra i zapisać plik Excela jako plik z włączoną obsługą makr, .XLSM, aby użyć kodu. Aby zapisać plik jako plik z obsługą makr, przejdź do Plik> Zapisz jako i wybierz Skoroszyt programu Excel z włączoną obsługą makr w oknie dialogowym „Zapisz jako”.
Następnie wybierz arkusz, do którego zastosowałeś filtry. Kliknij go prawym przyciskiem myszy i wybierz „Wyświetl kod” z menu kontekstowego.
Otworzy się okno Microsoft Visual Basic z aktualnym arkuszem Excela. Wklej następujący kod w oknie kodu.
Private Sub Worksheet_Change(ByVal Target As Range) If Me.FilterMode = True Then With Application .EnableEvents = False .ScreenUpdating = False End With With ActiveWorkbook .CustomViews.Add ViewName:="Mine", RowColSettings:=True Me.AutoFilterMode = False .CustomViews("Mine").Show .CustomViews("Mine").Delete End With With Application .EnableEvents = True .ScreenUpdating = True End With End If End Sub
Zapisz plik. Jeśli plik nie został zapisany jako skoroszyt programu Excel z włączoną obsługą makr, zostanie wyświetlony monit o zrobienie tego ponownie. Ten zapisany plik zostanie zapisany jako kopia i nie nadpisze bieżącego pliku.
Po dodaniu kodu możesz zaktualizować dowolną komórkę w przefiltrowanej kolumnie, która automatycznie odświeży przefiltrowane dane zgodnie z ustawionymi warunkami. Ten kod został napisany przez Sorina, użytkownika Stack Exchange.