我遇到了一个用户表单,该表单基于表单中下拉列表中的值在文本框中返回查找值。如果我从工作簿中的表格中选取一个列表中的一个项目,我希望以相同形式的文本框返回所选项目的参考号。
我正在使用以下代码:
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
我希望我已经解释清楚了!
答案 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
样本数据:
初始化时的用户表单:
选择“猫”将返回第3列中的值: