Hoe selecties van ActiveX-keuzelijsten in Excel opslaan of behouden?
Stel dat u enkele keuzelijsten heeft gemaakt en selecties heeft gemaakt in de keuzelijsten, dan zijn alle selecties van deze keuzelijsten verdwenen wanneer u de werkmap sluit en opnieuw opent. Wilt u selecties die in keuzelijsten zijn gemaakt bij het sluiten behouden en de werkmap opnieuw openen? De methode in dit artikel kan je daarbij helpen.
Bewaar of bewaar selecties van ActiveX-keuzelijsten met VBA-code in Excel
Voeg eenvoudig meerdere selectievakjes bulksgewijs in of verwijder ze in Excel:
De Batch invoegen selectievakjes hulpprogramma's van Kutools for Excel kan u helpen snel meerdere selectievakjes tegelijk in het geselecteerde bereik in te voegen. En u kunt alle selectievakjes in het geselecteerde bereik verwijderen met de Batchverwijder selectievakjes. Zie sccreenshot:
Kutools for Excel: met meer dan 200 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 60 dagen. Download en probeer nu gratis!
Bewaar of bewaar selecties van ActiveX-keuzelijsten met VBA-code in Excel
De onderstaande VBA-code kan u helpen bij het opslaan of behouden van selecties als ActiveX-keuzelijsten in Excel. Ga als volgt te werk.
1. In de werkmap bevat de ActiveX-keuzelijsten waarvan u de selecties wilt behouden, druk op anders + F11 toetsen tegelijkertijd om het Microsoft Visual Basic voor toepassingen venster.
2. In de Microsoft Visual Basic voor toepassingen venster, dubbelklik Dit Werkboek in het linkerdeelvenster om het Dit Werkboek Code venster. En kopieer vervolgens de volgende VBA-code naar het codevenster.
VBA-code: bewaar selecties van ActiveX-keuzelijsten in 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. druk de anders + Q toetsen om de Microsoft Visual Basic voor toepassingen venster.
4. Nu moet u de werkmap opslaan als een Excel-werkmap met macro's. Klik alstublieft Dien in > Opslaan als > Blader.
5. In de Opslaan als dialoogvenster, selecteer een map om de werkmap op te slaan, hernoem deze zoals u nodig hebt, selecteer Excel-werkmap met ingeschakelde macro's in de Opslaan als type vervolgkeuzelijst en klik ten slotte op de Bespaar knop. Zie screenshot:
Sla de werkmap elke keer op wanneer u de keuzelijsten bijwerkt. Vervolgens worden alle eerdere selecties in de keuzelijsten bewaard nadat de werkmap opnieuw is geopend.
Note: Bij het opslaan van de werkmap wordt een werkblad met de naam “ListBox-gegevens” wordt automatisch aangemaakt aan het einde van alle werkbladen van uw werkmap. Negeer dit werkblad omdat het automatisch verdwijnt wanneer de werkmap wordt gesloten.
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
- Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!