Я новичок в макросе VBA. Ну, я уже разобрался с некоторым его кодом, но у меня есть трудности для этого.

Я хочу добавить раскрывающийся список в ячейку ("F10"), а также добавить формулу vlookup ("G10"). Как только пользователь выберет любое значение из раскрывающегося списка, который находится в ячейке ("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 ответ1

0

Непонятно, что вы ищете с формулой, смежной с вашей проверкой столбца F, но ваша формула должна быть изменена, чтобы 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
Columns("G:G").EntireColumn.FormulaR1C1 = _
   "=IFERROR(VLOOKUP(RC[-1],Sheet1!R2C1:R21C2,2,FALSE), "" "")"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .