在Excel中创建动态下拉列表?

时间:2015-09-15 12:38:59

标签: excel

我正在尝试创建两个下拉列表,其中第一个将有年,第二个将有几个月。如果我选择2015年,第二次下拉应该只显示从1月到9月的几个月。如果我选​​择2014年,第二次下拉应该显示所有月份。你们中的任何一个人能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

试试这个短宏:

Sub DVSetup()
    Range("A1:B1").Clear
    With Range("A1").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="2014,2015"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

    For i = 1 To 12
      Range("C" & i).Value = Format(DateSerial(2000, i, 1), "mmm")
    Next i

    With Range("B1").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=IF(A1=2014,C1:C12,C1:C9)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

End Sub

它在单元格 A1 中设置 DV 以允许在2014年和2015年之间进行选择。它还在单元格中设置 DV B1 允许在 A1 中选择的每年的正确月份范围。

enter image description here