Como salvar ou manter as seleções de caixas de listagem ActiveX no Excel?
Suponha que você tenha criado algumas caixas de listagem e feito seleções nelas, no entanto, todas as seleções dessas caixas de listagem desaparecem ao fechar e reabrir a pasta de trabalho. Você deseja manter as seleções feitas nas caixas de listagem sempre que fechar e reabrir a pasta de trabalho? O método neste artigo pode ajudá-lo.
Salvar ou manter seleções de caixas de listagem ActiveX com código VBA no Excel
Salvar ou manter seleções de caixas de listagem ActiveX com código VBA no Excel
O código VBA abaixo pode ajudá-lo a salvar ou manter as seleções das caixas de listagem ActiveX no Excel. Por favor, siga os passos abaixo.
1. Na pasta de trabalho que contém as caixas de listagem ActiveX cujas seleções você deseja manter, pressione simultaneamente as teclas Alt + F11 para abrir a janela do Microsoft Visual Basic for Applications.
2. Na janela do Microsoft Visual Basic for Applications, clique duas vezes em ThisWorkbook no painel esquerdo para abrir a janela de ThisWorkbook Código. Em seguida, copie o seguinte código VBA na janela de código.
Código VBA: Salvar seleções de caixas de listagem ActiveX no 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. Pressione as teclas Alt + Q para fechar a janela do Microsoft Visual Basic for Applications.
4. Agora você precisa salvar a pasta de trabalho como uma Pasta de Trabalho Habilitada para Macro do Excel. Por favor, clique em Arquivo > Salvar Como > Procurar.
5. Na caixa de diálogo Salvar Como, selecione uma pasta para salvar a pasta de trabalho, renomeie-a conforme necessário, selecione Pasta de Trabalho Habilitada para Macro do Excel na lista suspensa Especificar Formato de Salvamento e, finalmente, clique no botão Salvar. Veja a captura de tela:
Salve a pasta de trabalho toda vez que atualizar as caixas de listagem. Então, todas as seleções anteriores serão mantidas nas caixas de listagem após reabrir a pasta de trabalho.
Observação: Ao salvar a pasta de trabalho, uma planilha chamada “ListBox Data” será criada automaticamente no final de todas as planilhas da sua pasta de trabalho; ignore esta planilha porque ela desaparecerá automaticamente quando a pasta de trabalho for fechada.
Melhores Ferramentas de Produtividade para Office
Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência sem igual. Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo.Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface de abas para o Office e facilita muito seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas da mesma janela, em vez de novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!