我想构建一个excel VBA程序来查找表中的所有匹配值并在列上打印查找...我尝试使用vlookup但只给了我找到的第一个位置...而我我想要所有的发现。
这是一个例子: 我的桌子从A2开始
0087
B栏(位置)
我粘贴我正在寻找位置的值.....在F栏上会给我找到符合我要求的所有位置...按升序或任何顺序
例如我正在寻找2个数字的位置:
我希望看到结果:
非常感谢任何帮助。
干杯, JFFC excel VBA
enter code here
答案 0 :(得分:0)
需要澄清。你是:
想要搜索多个值(在A列中),将所有相应的值(在B列中)返回到F列?
这方面的一个例子是:
A,B,D,F
1,loc1,1,LOC1
1,loc2,2,LOC2
2,loc3 ,, loc3
3,loc4 ,,
3,loc5,,
4,loc6 ,,,
显示如果您搜索1和2(在D列中),您将返回Loc1,loc2和loc3,因为这些是与数字1和2匹配的所有位置?
如果这不是你想要做的事情那么我很困惑
实现这一目标的宏:
Sub FindLocations()
Dim ValueCell As Range
Dim SearchCell As Range
Dim ResultCounter As Integer
Dim ValueCol, LocCol, SearchCol, ResultCol As Integer
ValueCol = 1 'Look for the values in this column'
LocCol = 2 'Locations are in this column'
SearchCol = 4 'The search values are in this column'
ResultCol = 6 'Spit out the results in this column'
ResultCounter = 2
For Each ValueCell In Range(Cells(2, ValueCol), Cells(ActiveSheet.UsedRange.Rows.Count, ValueCol))
For Each SearchCell In Range(Cells(2, SearchCol), Cells(ActiveSheet.UsedRange.Rows.Count, SearchCol))
If SearchCell.Value = ValueCell.Value Then
Cells(ResultCounter, ResultCol).Value = Cells(ValueCell.Row, LocCol).Value
ResultCounter = ResultCounter + 1
Exit For
End If
Next
Next
End Sub
将其粘贴到Excel VBA屏幕(Alt + F11)并运行它(或将其链接到按钮)每当您想要搜索时单击它
这样的结果如下: Excel Example http://img97.imageshack.us/img97/9310/excelexample.jpg