Excel - Criação de lista suspensa da lista dinâmica no VBA

Questão

Eu tenho tentado fazer uma Macro que pode criar uma lista suspensa de uma lista dinâmica na coluna A. Até agora eu criei o seguinte código:

 Sub Test () Range ("A1", Range ("A65536"). End (xlUp)). Name = Células "MyList" (1, 3) .Selecione com Selection.Validation .Delete .Add Type: = xlValidateList, AlertStyle : = xlValidAlertStop, Operador: = _ xlBetween, Formula1: = "= & MyList" .IgnoreBlank = Falso .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End Com End Sub 

No entanto chamando MyList não funciona.

Solução

Tente isto:

  • Vá para validação de dados, escolha lista e digite = MyList
  • Agora clique com o botão direito na aba de folhas e selecione o código de visualização e cole o seguinte código:

 Private Sub Worksheet_Change (ByVal Alvo como Range) Se Intersect (Target, Columns ("A: A")) Não é nada então Sair Sub Dim lRow As Integer lRow = Range ("A" & Rows.Count) .End (xlUp). Intervalo de Linhas ("A1: A" & lRow) .Name = "MyList" End Sub 
  • Este código irá alterar o intervalo de MyList sempre que uma alteração é feita na coluna a.

Obrigado ao TrowaD por essa dica.

Artigo Anterior Próximo Artigo

Principais Dicas