Wie kann man Auswahlmöglichkeiten von ActiveX-Listenfeldern in Excel speichern oder beibehalten?
Angenommen, Sie haben einige Listenfelder erstellt und Auswahlmöglichkeiten in den Listenfeldern getroffen, jedoch gehen alle diese Auswahlmöglichkeiten verloren, wenn Sie die Arbeitsmappe schließen und wieder öffnen. Möchten Sie die getroffenen Auswahlmöglichkeiten in den Listenfeldern immer dann beibehalten, wenn Sie die Arbeitsmappe schließen und wieder öffnen? Die Methode in diesem Artikel kann Ihnen helfen.
Auswahlmöglichkeiten von ActiveX-Listenfeldern mit VBA-Code in Excel speichern oder beibehalten
Auswahlmöglichkeiten von ActiveX-Listenfeldern mit VBA-Code in Excel speichern oder beibehalten
Der folgende VBA-Code kann Ihnen helfen, die Auswahlmöglichkeiten von ActiveX-Listenfeldern in Excel zu speichern oder beizubehalten. Bitte gehen Sie wie folgt vor.
1. Drücken Sie in der Arbeitsmappe, die die ActiveX-Listenfelder enthält, deren Auswahlmöglichkeiten Sie beibehalten möchten, gleichzeitig die Tasten Alt + F11, um das Fenster Microsoft Visual Basic for Applications zu öffnen.
2. Doppelklicken Sie im Fenster Microsoft Visual Basic for Applications im linken Bereich auf ThisWorkbook, um das ThisWorkbook Codefenster zu öffnen. Kopieren Sie dann den folgenden VBA-Code in das Codefenster.
VBA-Code: Auswahlmöglichkeiten von ActiveX-Listenfeldern in Excel speichern
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. Drücken Sie die Tasten Alt + Q, um das Fenster Microsoft Visual Basic for Applications zu schließen.
4. Nun müssen Sie die Arbeitsmappe als eine Excel-Makro-fähige Arbeitsmappe speichern. Klicken Sie dazu auf Datei > Speichern unter > Durchsuchen.
5. Wählen Sie im Dialogfeld „Speichern unter“ einen Ordner aus, um die Arbeitsmappe zu speichern, benennen Sie sie nach Bedarf um, wählen Sie Excel-Makro-fähige Arbeitsmappe aus der Dropdown-Liste „Speichern im Format“ aus und klicken Sie abschließend auf die Schaltfläche Speichern. Siehe Screenshot:
Speichern Sie die Arbeitsmappe jedes Mal, wenn Sie die Listenfelder aktualisieren. Dann werden alle vorherigen Auswahlmöglichkeiten in den Listenfeldern nach dem erneuten Öffnen der Arbeitsmappe beibehalten.
Hinweis: Beim Speichern der Arbeitsmappe wird automatisch ein Arbeitsblatt namens „ListBox Data“ am Ende aller Arbeitsblätter Ihrer Arbeitsmappe erstellt. Ignorieren Sie dieses Arbeitsblatt, da es automatisch verschwindet, wenn die Arbeitsmappe geschlossen wird.
Die besten Office-Produktivitätstools
Steigern Sie Ihre Excel-Kompetenz mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen, um Ihre Produktivität zu steigern und Zeit zu sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt die Reiter-Oberfläche in Office und macht Ihre Arbeit so viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen in Reitern in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Reitern desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich Hunderte von Mausklicks!