VBA用户表单查找返回空白值

时间:2019-07-19 18:36:30

标签: excel vba

我遇到了一个用户表单,该表单基于表单中下拉列表中的值在文本框中返回查找值。如果我从工作簿中的表格中选取一个列表中的一个项目,我希望以相同形式的文本框返回所选项目的参考号。

我正在使用以下代码:

With TestNameFuntionBox

Dim rngOWASPControls As Range
Dim ws As Worksheet
Set ws = Worksheets("List")

For Each rngOWASPControls In ws.Range("A2:D80")
Me.TestNameFunctionBox.AddItem rngOWASPControls.Value

Next rngOWASPControls

End With

似乎可以从下拉列表中选择下拉列表,但由于查找文本框仍为空白,因此未选择返回的值进行查找。

我试图输入表中存在的一项,如下所示:

TestNameValueFunctionBox.Value = "Review Webserver"

“查找”文本框绝对可以正常工作,并填充所需的值。我将以下VBA代码用于参考文本框:

With OWASPRefBox

    If TestNameValueFunctionBox.Value <> "" Then
        OWASPRefBox.Value =   Application.VLookup(TestNameValueFunctionBox.value, Worksheets("List").Range("A2:D80"), 3, FALSE)
    End If

End With

我希望我已经解释清楚了!

1 个答案:

答案 0 :(得分:0)

这对我来说很好:

Private Sub UserForm_Initialize()

    With TestNameFuntionBox

        Dim rngOWASPControls As Range
        Dim ws As Worksheet
        Set ws = Worksheets("List")

        For Each rngOWASPControls In ws.Range("A2:A80")
            If rngOWASPControls <> "" Then
                Me.TestNameFunctionBox.AddItem rngOWASPControls.Value
            End If
        Next rngOWASPControls

    End With

End Sub
Private Sub TestNameFunctionBox_Change()

    If TestNameFunctionBox.Value <> "" Then
        OWASPRefBox.Value = Application.VLookup(TestNameFunctionBox.Value, Worksheets("List").Range("A2:D80"), 3, False)
    End If

End Sub

样本数据:

img1

初始化时的用户表单:

img2

选择“猫”将返回第3列中的值:

img3