我有两个工作表工作簿。 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个小时的非计费时间可以投入到这项工作中。 :(
答案 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