动态下拉列表

时间:2019-10-29 09:03:48

标签: excel vba

我正在尝试从工作表(“历史数据”)中的表中的A列创建动态下拉列表。

此工作表不断更新,添加了新行,我希望下拉列表自动更新。

我已经设置了动态范围LastRow = Sheets("Historical Data").Range("A3").End(xlDown).Row,并且我试图将其放在公式中。

这是我到目前为止编写的代码:

LastRow = Sheets("Historical Data").Range("A3").End(xlDown).Row
Worksheets("Chart").Activate
Range("C1").Select

With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=Historical Data!$A$3:A" & LastRow & ")"        
End With

我想从标题行进行另一个下拉。我做了另一个动态范围;这是代码,但是不起作用(我对VBA还是很陌生):

LastColumn = Sheets("Historical Data").Cells(2, Sheets("Historical Data").Columns.Count).End(xlToLeft).Column
Range("G1").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="='Historical Data'!$T$2:" & LastColumn & "2"

出现应用程序定义或对象定义的错误

1 个答案:

答案 0 :(得分:0)

有2个问题

  1. @TimStack提到您在末尾有一个额外的括号
  2. 工作表名称中有一个空格,因此您必须使用单引号将其填充。

尝试一下

Formula1:="='Historical Data'!$A$3:A" & LastRow

注意:由于您已经具有删除重复项的代码,因此我将不解决该查询。