Excel VBA根据组合框中选定的值查找偏移单元格
我有一本两张工作表的工作簿。SheetA包含从SheetB上的范围填充的组合框 所以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 |
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
非常感谢!这个解决方案非常有效。很高兴能以积极的态度开始我的周五。