Ja, Sie können dies mit der folgenden Einrichtung tun.
Auf einigen Blattaufbau einige benannte Bereiche, z. eine Verkäuferliste (VendorList
) und einige andere Listen mit Produktionen z.B. AppleList
und MSList
:
Und z.B. eine Liste der Produkte:
Auf einem anderen Blatt, können Sie zwei Zellen mit Daten Validierungen Set-up. Setzen Sie eins auf VendorList
und das andere standardmäßig auf z.B. AppleList
:
Und die andere Validierungs Zellen:
Dann wird in dem Worksheet
Code-Modul, für das Worksheet_Change
Ereignis in diesem Code setzen:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo CleanUp
If Not Intersect(Target, Range("Selection1")) Is Nothing Then
'suspend events
Application.EnableEvents = False
'remove existing validation
Range("Selection2").Validation.Delete
'add new validation to Selection2
Select Case Range("Selection1").Value
Case "Apple"
Range("Selection2").Validation.Add _
Type:=xlValidateList, _
Formula1:="=AppleList"
Case "Microsoft"
Range("Selection2").Validation.Add _
Type:=xlValidateList, _
Formula1:="=MSList"
Case Else
'do nothing
End Select
End If
CleanUp:
Application.EnableEvents = True
End Sub
Notieren Sie sich den Code EnableEvents
aussetzt als Sie ändern Range
Werte als Teil des Ereignishandlers.
Keine Notwendigkeit für vba, Sie können = INDIRECT() verwenden, um einen Verweis auf die zweite Liste basierend auf der ersten Listenauswahl zu erstellen –