Macro Excel VBA para criar listas personalizadas a partir de uma seleção

0

Oi eu queria saber se alguém poderia me ajudar a criar uma macro que irá adicionar uma seleção para se destaca lista personalizada. Normalmente, para fazer isso, eu seleciono uma série de linhas em uma coluna, então eu tenho que arquivar, opções, avançadas e rolar até a parte inferior e clicar em editar listas personalizadas. Ao passar por isso com o criador de macro ligado tudo o que eu recebo é um script muito simples que está relacionado com as células específicas que eu selecionei. Eu gostaria de ajustar o código para que ele esteja usando o que eu selecionei atualmente para adicionar à lista personalizada. Dessa forma, nem sempre estou preso ao J4-J9 Range. 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 faço para escrever isso exatamente? Preciso declarar primeiro um tipo de variável para manter a seção atual? Quase todos os exemplos que eu observei parecem estar tentando fazer algo nos moldes do que estou tentando fazer, tendem a usar variáveis para manter o atual intervalo de seleções. Obrigado.

    
por small3687 07.06.2013 / 00:02

3 respostas

1

Altere seu código para usar o objeto Selection , que sempre conterá as células atualmente selecionadas (se mais de 1 estiver selecionado). ou seja,

Application.AddCustomList Selection

E certifique-se de que sua lista personalizada contém apenas letras, não números. por exemplo. A, B, C, D, E, F, G, ... ou A1, A2, A3, A4, A5, A6 ... são bons, mas 1,2,3,4,5 não é.

    
por 07.06.2013 / 00:45
1

Tente 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
    
por 06.07.2016 / 11:48
1

tente isso com adicionar, obter e excluir lista personalizada.  Dica: células em branco tratam 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
    
por 01.09.2017 / 11:04