Я использую
- дополнительный диапазон значений (для списка значений) в скрытом листе, который я заполняю текущими критериями, которые пользователь может выбрать (в моем случае это варьируется от строки к строкекогда он заполняет лист)
- все ячейки основного листа проверяются на соответствие этому диапазону LOV
- триггер Selection_Change () загружает LOV после каждого перемещения курсора из исходного возможного диапазонаchoices
Так я заново генерирую свой LOV (по сути, пользователь уже выбрал код страны в другой ячейке, переданной здесь в строке CtyCd, и теперь лист готов предложить выбор извозможные варианты чего-то, называемого GINI, только для этой страны ... так что, возможно, похоже на ваш запрос)
Sub LoadL2LOV(CtyCd As String, LOVL2 As Range)
'
' CtyCd is a selection criterium for the original list in range GINI
' LOVL2 is the target range containing the current list of values
' all cells in sheet have a validation against range LOV defined
'
Dim GINI As Range, Idx As Long, Jdx As Long, LName As Name, Adr As String
' clear current PoP_L2
Set LName = ActiveWorkbook.Names(LOVL2.Name.Name)
Set GINI = Worksheets("GINI Availability").Range("GINI")
LOVL2.ClearContents
' set new LOV for PoP_L2
If CtyCd <> "" Then
Idx = 2
Jdx = 1
' find 1st occurence of CtyCd in GINI
Do While GINI(Idx, 4) <> CtyCd And GINI(Idx, 4) <> ""
Idx = Idx + 1
Loop
' GINI is sorted, just read until the end of selected CtyCd
Do While GINI(Idx, 4) = CtyCd
LOVL2(Jdx, 1) = GINI(Idx, 1) & "-" & GINI(Idx, 2) & "-" & GINI(Idx, 3)
Idx = Idx + 1
Jdx = Jdx + 1
Loop
End If
' redefine LOV name to contain all current valid choices
LOVL2.CurrentRegion.Name = LOVL2.Name.Name
End Sub
В вашем случае, поскольку данные кажутся более или менее статичными, вы можете скопировать все действительные вариантыот [Prod_Release] до LOV в Sheet_Activate или любом соответствующем триггере активации.
Надеюсь, это поможет .... удачи MikeD