Ir para o conteúdo principal

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


Insira ou exclua facilmente várias caixas de seleção em massa no Excel:

A Caixas de seleção de inserção de lote utilitários de Kutools for Excel pode ajudá-lo a inserir rapidamente várias caixas de seleção no intervalo selecionado de uma vez. E você pode excluir todas as caixas de seleção no intervalo selecionado com o Caixas de seleção para exclusão em lote. Veja a captura de tela:

Kutools for Excel: com mais de 200 suplementos úteis do Excel, grátis para testar sem limitação em 60 dias. Baixe e teste grátis agora!


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 > Procurar.

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 Salvar 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

🤖 Assistente de IA do Kutools: Revolucionar a análise de dados com base em: Execução Inteligente   |  Gerar Código  |  Crie fórmulas personalizadas  |  Analise dados e gere gráficos  |  Invocar funções do Kutools...
Recursos mais comuns: Encontre, destaque ou identifique duplicatas   |  Excluir linhas em branco   |  Combine colunas ou células sem perder dados   |   Rodada sem Fórmula ...
Super pesquisa: VLookup de múltiplos critérios    VLookup de múltiplos valores  |   VLookup em várias planilhas   |   Pesquisa Difusa ....
Lista suspensa avançada: Crie rapidamente uma lista suspensa   |  Lista suspensa de dependentes   |  Lista suspensa de seleção múltipla ....
Gerenciador de colunas: Adicione um número específico de colunas  |  Mover colunas  |  Alternar status de visibilidade de colunas ocultas  |  Compare intervalos e colunas ...
Recursos em destaque: Foco da Grade   |  Vista de Design   |   Grande Barra de Fórmula    Gerenciador de pastas de trabalho e planilhas   |  Biblioteca (Auto texto)   |  Data Picker   |  Combinar planilhas   |  Criptografar/Descriptografar Células    Enviar e-mails por lista   |  Super Filtro   |   Filtro Especial (filtro negrito/itálico/tachado...) ...
15 principais conjuntos de ferramentas12 Texto Ferramentas (Adicionar texto, Remover Personagens, ...)   |   50+ de cores Tipos (Gráfico de Gantt, ...)   |   Mais de 40 práticos Fórmulas (Calcule a idade com base no aniversário, ...)   |   19 Inclusão Ferramentas (Insira o código QR, Inserir imagem do caminho, ...)   |   12 Conversão Ferramentas (Números para Palavras, Conversão de moedas, ...)   |   7 Unir e dividir Ferramentas (Combinar linhas avançadas, Dividir células, ...)   |   ... e mais

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...

Descrição


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!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi - Is there any way to prevent the "ListBox Data" tab from opening when you save the file? We're trying to send this to users but every time I save it opens the ListBox Data tab and then I can't save it with the primary tab open - which is confusing for users.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations