VBA根据组合框中选择的值查找偏移量单元格

时间:2018-11-16 02:08:13

标签: excel vba excel-vba combobox

我有两个工作表工作簿。 SheetA包含从SheetB上的区域填充的组合框。

所以Combobox1.ListFillRange = SheetB!$A$2:$A$5

在SheetB上,列B将包含一个相关的整数IE:

+----------+----------+
| Column A | Column B |
+----------+----------+
|  Value1  |     5    |
+----------+----------+
|  Value2  |     7    |
+----------+----------+
|  Value3  |    12    |
+----------+----------+
|  Value 4 |    32    |
+----------+----------+

如果用户从ComboBox1中选择Value2 ...,我需要在SheetB!$ B $ 3:$ B $ 3中查找该值,在本示例中为7。

我正在尝试找出可以放在此处的代码:

Private Sub ComboBox1_Change()

End Sub

要做这项工作。

感谢您的帮助,我有6个小时的非计费时间可以投入到这项工作中。 :(

1 个答案:

答案 0 :(得分:1)

将其放置在SheetA

后面的代码中

根据需要使用MyValue的值

这使用ComboBox的ListFillRange属性来引用工作表并确定ComboBox数据的绘制范围

Private Sub ComboBox1_Change()
    Dim ws As Worksheet
    Dim MyValue As Variant
    Dim ListRange As String
    Dim i As Long

    ListRange = ComboBox1.ListFillRange
    i = InStr(ListRange, "!")
    If i Then
        Set ws = ThisWorkbook.Worksheets(Left$(ListRange, i - 1))
    Else
        Set ws = Me
    End If
    MyValue = Application.VLookup(ComboBox1.Value, ws.Range(ListRange).Resize(, 2), 2, 0)

    Debug.Print MyValue

End Sub