Раскрывающийся список Excel с условием

Раскрывающийся список Excel с условием

Я искал некоторое время, но не смог найти решение моей проблемы. Есть таблица с именем tbl_lov, которая содержит список значений, используемых в раскрывающемся списке через косвенную функцию. INDIRECT("tbl_lov[ProjNR]")

Поскольку проекты приходят и уходят, у меня есть столбец в tbl_lov с именем active, который содержит значение True или False. Если это false, я не хочу, чтобы это значение отображалось в раскрывающемся списке. К сожалению, я пока не придумал, как сделать это напрямую.

решение1

Поскольку, как мне кажется, в использовании только его функций нет ничего тривиального, в итоге я применил макрос (чего хотел избежать).

Dim all_lov As Variant
Dim row_nr As Integer

Sub Button1_Click()
    Worksheets("LoV").Range("I:N").Delete
    row_nr = 3
    all_lov = Worksheets("LoV").ListObjects("tbl_lov").DataBodyRange.Value
    Worksheets("LoV").Range("B3:G3").Copy Worksheets("LoV").Range("I3")
    For i = 1 To UBound(all_lov)
        If all_lov(i, 6) = True Then
            row_nr = row_nr + 1
            Worksheets("LoV").Range("B" & (3 + i) & ":G" & (3 + i)).Copy Worksheets("LoV").Range("I" & row_nr)
        End If
    Next i
    Worksheets("Lov").ListObjects.Add(SourceType:=xlSrcRange, Source:=Worksheets("LoV").Range("I3:N" & row_nr), xlListObjectHasHeaders:=xlYes, tablestyleName:="TableStyleDark3").Name = "tbl_lovActive"
End Sub

Это будет итерировано через мою существующую таблицу и скопирует в новый диапазон только активные проекты. Проверка данных указывает на новую таблицу.

Связанный контент