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
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...
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!