Come salvare o mantenere le selezioni delle caselle di riepilogo ActiveX in Excel?
Supponiamo che tu abbia creato alcune caselle di riepilogo e fatto delle selezioni al loro interno, tuttavia, tutte le selezioni di queste caselle di riepilogo vengono perse quando chiudi e riapri il file di lavoro. Vuoi mantenere le selezioni fatte nelle caselle di riepilogo ogni volta che chiudi e riapri il file di lavoro? Il metodo descritto in questo articolo può aiutarti.
Salvare o mantenere le selezioni delle caselle di riepilogo ActiveX con il codice VBA in Excel
Salvare o mantenere le selezioni delle caselle di riepilogo ActiveX con il codice VBA in Excel
Il seguente codice VBA può aiutarti a salvare o mantenere le selezioni delle caselle di riepilogo ActiveX in Excel. Si prega di procedere come segue.
1. Nel file di lavoro che contiene le caselle di riepilogo ActiveX di cui vuoi mantenere le selezioni, premi contemporaneamente i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Nella finestra Microsoft Visual Basic for Applications, fai doppio clic su ThisWorkbook nel riquadro sinistro per aprire la finestra del Codice di ThisWorkbook. Successivamente, copia il seguente codice VBA nella finestra del codice.
Codice VBA: Salva le selezioni delle caselle di riepilogo ActiveX 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. Premi i tasti Alt + Q per chiudere la finestra Microsoft Visual Basic for Applications.
4. Ora devi salvare il file di lavoro come Cartella di lavoro con Macro abilitate. Clicca su File > Salva con nome > Sfoglia.
5. Nella finestra di dialogo Salva con nome, seleziona una cartella per salvare il file di lavoro, rinominalo come necessario, seleziona Cartella di lavoro con Macro abilitate nell'elenco a discesa Specifica formato di salvataggio, e infine clicca sul pulsante Salva. Vedi screenshot:
Salva il file di lavoro ogni volta che aggiorni le caselle di riepilogo. Quindi, tutte le selezioni precedenti verranno mantenute nelle caselle di riepilogo dopo aver riaperto il file di lavoro.
Nota: Quando salvi il file di lavoro, un foglio di lavoro denominato “ListBox Data” verrà creato automaticamente alla fine di tutti i fogli di lavoro del tuo file di lavoro; ignora questo foglio di lavoro perché scomparirà automaticamente quando il file di lavoro viene chiuso.
I migliori strumenti per la produttività in Office
Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice
- Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!