带条件的 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

这将遍历我现有的表格,并将活动项目复制到新范围。数据验证指向新表格。

相关内容