Excel - Tworzenie listy rozwijanej z dynamicznej listy w VBA

Kwestia

Próbowałem utworzyć makro, które może utworzyć listę rozwijaną z dynamicznej listy w kolumnie A. Do tej pory wymyśliłem następujący kod:

 Sub Test () Range („A1”, Range („A65536”). End (xlUp)). Name = „MyList” Komórki (1, 3) .Wybierz With Selection.Validation .Delete .Add Type: = xlValidateList, AlertStyle : = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= & MyList" .IgnoreBlank = False .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End Sub 

Jednak wywołanie MyList nie działa.

Rozwiązanie

Spróbuj tego:

  • Przejdź do sprawdzania poprawności danych, wybierz listę i wpisz = MyList
  • Teraz kliknij prawym przyciskiem myszy kartę arkuszy i wybierz widok kodu i wklej następujący kod:

 Private Sub Worksheet_Change (ByVal Target as Range) Jeśli Intersect (Target, Columns („A: A”)) nie ma nic, a następnie Ex sub Sub dim lRow As Integer lRow = Range („A” i Rows.Count) .End (xlUp). Zakres wierszy („A1: A” i lRow) .Name = „MyList” End Sub 
  • Ten kod zmieni zakres MyList za każdym razem, gdy dokonana zostanie zmiana w kolumnie A.

Dzięki TrowaD za tę wskazówkę.

Poprzedni Artykuł Następny Artykuł

Najważniejsze Wskazówki