下拉列表自动填充到最后一行

下拉列表自动填充到最后一行

我是 VBA 宏的新手。我已经弄清楚了它的一些代码,但是对于这个我遇到了困难。

我想在单元格 ("F10") 上添加一个下拉列表,还想在单元格 ("G10") 上添加一个 vlookup 公式。一旦用户从单元格 ("F10") 上的下拉列表中选择任何值,单元格 ("G10") 中就会出现相应的值

现在我希望下拉列表会自动填充直到数据的最后一行或使用的单元格,与 vlookup 相同我有此代码但它有一个错误,我不知道该怎么办..

ActiveCell.Columns("F:F").EntireColumn.Select
With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:= _
        "Sample, Partner, Single, Joint"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With
ActiveCell.Offset(0, 1).Columns("F:F").EntireColumn.Select
ActiveCell.FormulaR1C1 = _
    "=IFERROR(VLOOKUP(C[-1],[Macro.xlsm]Sheet2!R2C1:R21C2,2,FALSE), "" "")"
ActiveCell.Select
ActiveCell.Range("G:G").EntireColumn.Select
ActiveCell.Offset(3, -1).Range("G:G").Select

因为我的宏正在创建一个新的工作簿并保存它,这取决于文件名的分支名称。所以我对下拉列表的值进行了硬编码。

感谢您的帮助!

答案1

不清楚您使用 F 列验证旁边的公式查找什么,但您的公式需要更改为查找单元格而不是列范围。

插入公式后您想要做什么?

    ActiveCell.Columns("F:F").EntireColumn.Select
With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:= _
        "Sample, Partner, Single, Joint"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With
Columns("G:G").EntireColumn.FormulaR1C1 = _
   "=IFERROR(VLOOKUP(RC[-1],Sheet1!R2C1:R21C2,2,FALSE), "" "")"

相关内容