我有一个项目,我必须将文本框的值更改为在工作集中针对从组合框中选择的vlaue搜索的值。例如,如果我选择" A"从组合框中,它应该搜索工作表" test"找到A的输入并将文本框值更改为1,因为这是为A输入的值。我已经查看了一些其他问题,但这些问题似乎无法让它对我起作用。以下是我一直试图使用的代码。
Private Sub IDComboBox_Change()
Dim domainRange As Range
Dim listRange As Range
Dim selectedString As Variant
Dim lastRow As Long
If IDComboBox.ListIndex <> -1 Then
selectedString = IDComboBox.Value
lastRow = Worksheets("test").Range("A" & Rows.Count).End(xlUp).Row
Set listRange = Worksheets("test").Range("A2:A" & lastRow)
For Each domainRange In listRange
If domainRange.Value = selectedString Then
DomainOwnerTestBox.Value = "test"
End If
Next domainRange
End If
End Sub
任何帮助都会很棒。如果您需要更多信息,那么请告诉我,也请与我交流,因为我是VBA的新手。
由于
答案 0 :(得分:0)
试试这段代码。它使用Excel内置MATCH函数在工作表'test'的A列中搜索值。
Private Sub IDComboBox_Change()
Dim wks As Excel.Worksheet
Dim selectedString As Variant
Dim row As Long
Dim value As Variant
Set wks = Worksheets("test")
If IDComboBox.ListIndex <> -1 Then
selectedString = IDComboBox.value
On Error Resume Next
row = Application.WorksheetFunction.Match(selectedString, wks.Columns(1), 0)
On Error GoTo 0
If row Then
value = wks.Cells(row, 2) '<--- assuming that input values are in column 2.
DomainOwnerTestBox.value = value
Else
'Value not found in the worksheet 'test'
End If
End If
End Sub