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

Excel VBA根据组合框中选定的值查找偏移单元格,excel,vba,combobox,Excel,Vba,Combobox,我有一本两张工作表的工作簿。SheetA包含从SheetB上的范围填充的组合框 所以Combobox1.ListFillRange=SheetB$A$2:$A$5 在SheetB上,B列将包含一个相关的整数,即: +----------+----------+ | Column A | Column B | +----------+----------+ | Value1 | 5 | +----------+----------+ | Value2 | 7 |

我有一本两张工作表的工作簿。SheetA包含从SheetB上的范围填充的组合框

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

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

+----------+----------+
| 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个小时的时间来完成这项工作(

将其放在
表A后面的代码中

根据需要使用
MyValue
的值

这使用组合框的
ListFillRange
属性来引用组合框数据从中提取的工作表和范围

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

非常感谢!这个解决方案非常有效。很高兴能以积极的态度开始我的周五。