Olá, gostaria de saber se alguém poderia me ajudar a criar uma macro que adicione uma seleção à lista personalizada do Excel. Normalmente, para fazer isso, seleciono uma série de linhas em uma coluna, depois vou para arquivo, opções, avançado e vou até o final e clico em editar listas personalizadas. Ao passar por isso com o criador de macro ativado, tudo que obtenho é um script muito simples relacionado às células específicas que selecionei. Gostaria de ajustar o código para que ele use tudo o que selecionei atualmente para adicionar à lista personalizada. Dessa forma, nem sempre estou preso à faixa J4-J9. Abaixo está o código que recebo.
Sub Customlistadd()
'
' Customlistadd Macro
'
' Keyboard Shortcut: Ctrl+Shift+I
'
Application.AddCustomList ListArray:=Range("J4:J8")
End Sub
É tão simples quanto adicionar a seleção atual no lugar de j4:j8? Se sim, como escrevo isso exatamente? Preciso primeiro declarar um tipo de variável para conter a seção atual? Quase todos os exemplos que observei parecem tentar fazer algo parecido com o que estou tentando fazer, tendem a usar variáveis para manter o intervalo de seleções atual. Obrigado.
Responder1
Altere seu código para usar o Selection
objeto, que sempre conterá as células atualmente selecionadas (se mais de 1 for selecionada). ou seja
Application.AddCustomList Selection
E certifique-se de que sua lista personalizada contenha apenas letras, não números. por exemplo, A, B, C, D, E, F, G,... ou A1, A2, A3, A4, A5, A6,... estão bem, mas 1,2,3,4,5 não está .
Responder2
Experimente isso
Public Sub CreateCustomList()
Dim v As Variant
Dim rng As Excel.Range
Set rng = ActiveSheet.Range("A1:A3")
'Transpose from 2 dim array to 1 dim array
v = Application.Transpose(Selection)
'Add the custom list
Application.AddCustomList v
End Sub
Responder3
tente isso com add , get e delete lista personalizada. Dica: as células em branco são tratadas como ordem contável, por favor, não use células em branco
Sub CoustomList()
Dim Arr() As Variant
Dim N As Long
Application.AddCustomList ListArray:=Sheet1.Range("A2:A4")
Arr = Sheet1.Range("A2:A4")
N = Application.GetCustomListNum(Arr)
Application.DeleteCustomList N
End Sub