Como salvar ou reter seleções de caixas de listagem ActiveX no Excel?
Supondo que você tenha criado algumas caixas de listagem e feito seleções nas caixas de listagem, no entanto, todas as seleções dessas caixas de listagem desaparecem quando fecha e reabre 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 as seleções de caixas de listagem ActiveX com código VBA no Excel
Salvar ou manter as seleções de caixas de listagem ActiveX com código VBA no Excel
O código VBA abaixo pode ajudá-lo a salvar ou reter seleções nas caixas de listagem ActiveX do Excel. Faça o seguinte.
1. Na pasta de trabalho que contém as caixas de lista ActiveX que você deseja manter as seleções, pressione o botão outro + F11 simultaneamente para abrir o Microsoft Visual Basic para Aplicações janela.
2. No Microsoft Visual Basic para Aplicações janela, clique duas vezes Esta pasta de trabalho no painel esquerdo para abrir o Esta pasta de trabalho Code janela. Em seguida, copie o seguinte código VBA na janela de código.
Código VBA: Salve as 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. aperte o outro + Q chaves para fechar o Microsoft Visual Basic para Aplicações janela.
4. Agora você precisa salvar a pasta de trabalho como uma pasta de trabalho habilitada para macros do Excel. Por favor clique Envie o > Salvar como > Explorar.
5. No Salvar como caixa de diálogo, selecione uma pasta para salvar a pasta de trabalho, renomeie-a conforme necessário, selecione Pasta de trabalho habilitada para macro do Excel no Salvar como tipo lista suspensa e, finalmente, clique no Economize botão. Veja a imagem:
Salve a pasta de trabalho sempre que atualizar as caixas de listagem. Em seguida, todas as seleções anteriores serão mantidas nas caixas de listagem após a reabertura da pasta de trabalho.
Note: Ao salvar a pasta de trabalho, uma planilha chamada “Dados ListBox”Será criado automaticamente no final de todas as planilhas de sua pasta de trabalho, ignore esta planilha porque ela desaparecerá automaticamente quando a pasta de trabalho for fechada.
Melhores ferramentas de produtividade de escritório
Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil
- Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
- Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!