由于选择了ComboBox VBA Excel而更改了TextBox的值

时间:2015-07-16 08:43:16

标签: excel vba excel-vba combobox textbox

我有一个项目,我必须将文本框的值更改为在工作集中针对从组合框中选择的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的新手。

由于

1 个答案:

答案 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
相关问题