【问题标题】:Changing value of TextBox due to selection of ComboBox VBA Excel由于选择 ComboBox VBA Excel 而更改 TextBox 的值
【发布时间】:2015-07-16 16:58:11
【问题描述】:

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

谢谢

【问题讨论】:

  • 有效吗?是否显示错误?
  • 它不起作用。当我在复选框中选择某些内容时,它不会将任何内容放入文本框@Nicolas
  • 我想确认一件事,您在工作表中使用了什么类型的控件?表单控件还是 Active X 控件?
  • 我正在使用 Active X 控件

标签: vba excel combobox textbox


【解决方案1】:

试试这个代码。它使用 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

【讨论】:

  • 这就是那个回复@milek。但是我已经尝试过了,它仍然无法正常工作。这是否与我使用另一个 _change() 来填充 IDComboBox 的不同组合框有关。我不认为它应该与它有任何关系,但我不知道。它仍然不起作用,我不明白为什么。您的代码似乎很有意义,但我不知道。有什么建议吗?
  • 别担心我说了什么。你的代码很有效。我所要做的就是将 selectedstring 的数据类型更改为 Integer,这非常感谢 :):)@mielk
猜你喜欢
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多