Przejdź do głównej zawartości

Jak zapisać lub zachować zaznaczenia pól list ActiveX w programie Excel?

Przypuśćmy, że utworzyłeś kilka pól list i dokonałeś selekcji w polach list, jednak wszystkie zaznaczenia tych pól list znikają po zamknięciu i ponownym otwarciu skoroszytu. Czy chcesz zachować wybory dokonane w polach list po każdym zamknięciu i ponownym otwarciu skoroszytu? Metoda opisana w tym artykule może ci pomóc.

Zapisz lub zachowaj zaznaczenia pól list ActiveX za pomocą kodu VBA w programie Excel


Z łatwością wstawiaj lub usuwaj wiele pól wyboru zbiorczo w programie Excel:

Połączenia Wstaw pola wyboru wsadowego narzędzia Kutools dla programu Excel może pomóc w szybkim wstawianiu wielu pól wyboru w wybranym zakresie jednocześnie. Możesz usunąć wszystkie pola wyboru w wybranym zakresie za pomocą Batch Usuń pola wyboru. Zobacz sccreenshot:

Kutools dla programu Excel: z ponad 200 poręcznymi dodatkami do programu Excel, które można wypróbować bez ograniczeń w ciągu 60 dni. Pobierz i bezpłatną wersję próbną teraz!


Zapisz lub zachowaj zaznaczenia pól list ActiveX za pomocą kodu VBA w programie Excel

Poniższy kod VBA może pomóc w zapisywaniu lub zachowywaniu wyborów, jeśli pola list ActiveX w programie Excel. Wykonaj następujące czynności.

1. W skoroszycie zawierającym pola list ActiveX, które chcesz zachować, naciśnij klawisz inny + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.

2. w Microsoft Visual Basic for Applications kliknij dwukrotnie Ten zeszyt w lewym okienku, aby otworzyć plik Ten zeszyt Code okno. A następnie skopiuj następujący kod VBA do okna kodu.

Kod VBA: Zapisz wybory pól list ActiveX w programie Excel

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim I As Long
    Dim J As Long
    Dim K As Long
    Dim KK As Long
    Dim xSheet As Worksheet
    Dim xListBox As Object
    On Error GoTo Label
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    K = 0
    KK = 0
    If Not Sheets("ListBox Data") Is Nothing Then
        Sheets("ListBox Data").Delete
    End If
Label:
    Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "ListBox Data"
    Set xSheet = Sheets("ListBox Data")
    For I = 1 To Sheets.Count
        For Each xListBox In Sheets(I).OLEObjects
            If xListBox.Name Like "ListBox*" Then
                With xListBox.Object
                For J = 0 To .ListCount - 1
                    If .Selected(J) Then
                        xSheet.Range("A1").Offset(K, KK).Value = "True"
                    Else
                        xSheet.Range("A1").Offset(K, KK).Value = "False"
                    End If
                    K = K + 1
                Next
                End With
                K = 0
                KK = KK + 1
            End If
        Next
    Next
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Private Sub Workbook_Open()
    Dim I As Long
    Dim J As Long
    Dim KK As Long
    Dim xRg As Range
    Dim xCell As Range
    Dim xListBox As Object
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    KK = 0
    For I = 1 To Sheets.Count - 1
        For Each xListBox In Sheets(I).OLEObjects
            If xListBox.Name Like "ListBox*" Then
                With xListBox.Object
                    Set xRg = Intersect(Sheets("ListBox Data").Range("A1").Offset(0, KK).EntireColumn, Sheets("ListBox Data").UsedRange)
                    For J = 1 To .ListCount
                        Set xCell = xRg(J)
                        If xCell.Value = "True" Then
                            .Selected(J - 1) = True
                        End If
                    Next
                    KK = KK + 1
                End With
            End If
        Next
    Next
    Sheets("ListBox Data").Delete
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

3. wciśnij inny + Q klucze do zamknięcia Microsoft Visual Basic for Applications okno.

4. Teraz musisz zapisać skoroszyt jako skoroszyt programu Excel z włączoną obsługą makr. Proszę kliknąć filet > Zapisz jako > Przeglądaj.

5. w Zapisz jako oknie dialogowym wybierz folder, w którym chcesz zapisać skoroszyt, zmień jego nazwę według potrzeb, wybierz Skoroszyt Excel z włączoną obsługą makr Zapisz jako typ rozwijaną listę i na koniec kliknij przycisk Zapisz przycisk. Zobacz zrzut ekranu:

Zapisz skoroszyt za każdym razem, gdy aktualizujesz pola list. Następnie wszystkie poprzednie wybory zostaną zachowane w polach list po ponownym otwarciu skoroszytu.

Note: Podczas zapisywania skoroszytu zostanie wyświetlony arkusz o nazwie „Dane ListBox” zostanie utworzony automatycznie na końcu wszystkich arkuszy skoroszytu. Zignoruj ​​ten arkusz, ponieważ zniknie on automatycznie po zamknięciu skoroszytu.

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi - Is there any way to prevent the "ListBox Data" tab from opening when you save the file? We're trying to send this to users but every time I save it opens the ListBox Data tab and then I can't save it with the primary tab open - which is confusing for users.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations