Hvordan gemmes eller bevares valg af ActiveX-listefelter i Excel?
Hvis du antager, at du har oprettet nogle listefelter og foretaget valg i listefelterne, er alle valg af disse listefelter imidlertid væk, når du lukker og genåbner projektmappen. Vil du bevare de valg, der er foretaget i listefelter, når du lukker og genåbner projektmappen? Metoden i denne artikel kan hjælpe dig.
Gem eller bevar valg af ActiveX-listefelter med VBA-kode i Excel
Indsæt eller slet let flere afkrydsningsfelter i bulk i Excel:
Batchindsats afkrydsningsfelter forsyninger af Kutools til Excel kan hjælpe dig med hurtigt at indsætte flere afkrydsningsfelter i det valgte område på én gang. Og du kan slette alle afkrydsningsfelter i det valgte område med Batch Slet afkrydsningsfelter. Se skærmbillede:
Kutools til Excel: med mere end 200 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 60 dage. Download og gratis prøveversion nu!
Gem eller bevar valg af ActiveX-listefelter med VBA-kode i Excel
Nedenstående VBA-kode kan hjælpe dig med at gemme eller bevare valg, hvis ActiveX-listefelter i Excel. Gør som følger.
1. I projektmappen indeholder de ActiveX-listefelter, du vil beholde valgene, skal du trykke på andre + F11 taster samtidigt for at åbne Microsoft Visual Basic til applikationer vindue.
2. i Microsoft Visual Basic til applikationer dobbeltklik på vinduet ThisWorkbook i venstre rude for at åbne ThisWorkbook Kode vindue. Og kopier derefter følgende VBA-kode i kodevinduet.
VBA-kode: Gem valg af ActiveX-listefelter i 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. Tryk på andre + Q taster for at lukke Microsoft Visual Basic til applikationer vindue.
4. Nu skal du gemme projektmappen som en Excel Macro-aktiveret projektmappe. Klik venligst File (Felt) > Gem som > Gennemse.
5. i Gem som dialogboks, vælg en mappe for at gemme projektmappen, omdøb den efter behov, vælg Excel-makroaktiveret projektmappe i Filtype rullemenuen, og klik til sidst på Gem knap. Se skærmbillede:
Gem projektmappen hver gang, når du opdaterer listeboksene. Så vil alle tidligere valg blive bevaret i listeboksene efter genåbning af projektmappen.
Bemærk: Når du gemmer projektmappen, vises et arbejdsark med navnet "ListBox Data” vil blive oprettet automatisk i slutningen af alle regneark i din projektmappe. Ignorer venligst dette regneark, fordi det forsvinder automatisk, når projektmappen lukkes.
Bedste kontorproduktivitetsværktøjer
Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid. Klik her for at få den funktion, du har mest brug for...
Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!