На скорую руку набросал макрос, попутно гугля и разбираясь
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 1 Then ' ячейка A1, здесь выбор
If Target.Text = "1a" Then ' проверяем, какой диапазон выбран
Range("A3").Validation.Modify Formula1:="=Диапазон1A" ' в формулу устанавливаем имя первого диапазона
Else
Range("A3").Validation.Modify Formula1:="=Диапазон1B" ' или второго
End If
End If
End Sub
Код омерзителен, ибо используются адресация и стандартная, и числовая, и по имени, но, вроде бы, работоспособен. Думаю, можно причесать, но не силен в экселевском бейсике.