Vlookup в другом листе - PullRequest
       10

Vlookup в другом листе

1 голос
/ 08 апреля 2019

Я сейчас работаю над пользовательской формой. В этой пользовательской форме данные вводятся в textbox4, а данные помещаются в textbox6 с помощью кнопки command3 на основе Vlookup. Однако vlookup должен извлечь свои данные из рабочей таблицы «DB - verzamelformulier» в диапазоне A: B. В настоящее время я получаю сообщение об ошибке: требуется объект 424. Кто-нибудь может мне помочь с кодом?

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("DB - verzamelformulier")

With ws
Texbox6.Formula = "VLookup(TextBox4.Value, DB - verzamelformulier!$A:$B), 2, False)"

End With
End Sub

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Интересный подход, но вы не можете назначать формулы для текстовых полей, только ячейки.Попробуйте использовать такую ​​функцию:

Function VerzamelFormulier(LookUpValue As Variant) As Variant
    Dim WS As Worksheet
    Dim R As Range

    Set WS = ThisWorkbook.Worksheets("DB - verzamelformulier")
    Set R = WS.Range("A:A").Find(LookUpValue, LookIn:=xlValues, Lookat:=xlWhole)
    If R Is Nothing Then
        ' The value wasn't found.
    Else
        ' Return the value from the cell in the same row and column B.
        VerzamelFormulier = WS.Cells(R.Row, 2)
    End If
End Function

Вызовите ее для события изменения TextBox4, чтобы при каждом изменении значения TextBox6 обновлялось.

Private Sub TextBox4_Change()
    TextBox6.Value = VerzamelFormulier(TextBox4.Value)
End Sub
0 голосов
/ 08 апреля 2019

Использование Vlookup:

Option Explicit

Sub test()

    Dim varResults As Variant

    varResults = Application.VLookup(TextBox4.Value, ThisWorkbook.Worksheets("Db - verzamelformulier").Range("A:B"), 2, False)

    If Not IsError(varResults) Then
        'If there is a results
        TextBox6.Value = varResults
    Else
        'If there is no result
    End If

End Sub
...