系统:Windows 7
软件:Excel 2010
- 结合Match和Index实现类似VLookup的效果,不过更灵活一点
Part 1:示例
- 已知人员姓名、学号、成绩信息,再根据姓名去查询学号和成绩信息
动图效果
Part 2:代码
Sub 查询()
Set sht = ThisWorkbook.Worksheets("示例")
'清空之前的结果
sht.Range("G2:H3").ClearContents
rng_name = sht.Range("C1:C8")
rng_whole = sht.Range("A1:D8")
For i = 2 To 3 Step 1
student_name = sht.Cells(i, "F")
row_num = Application.Match(student_name, rng_name, 0)
xuehao = Application.Index(rng_whole, row_num, 2)
yuwen = Application.Index(rng_whole, row_num, 4)
sht.Cells(i, "G") = xuehao
sht.Cells(i, "H") = yuwen
Next
End Sub
代码截图
Part 3:部分代码解读
-
Application.Index(rng_whole, row_num, 2)
,rng_whole区域第row_num行,第2列
Index定位
Ps:要实现本文的效果,其实不用Index
也是可以的,只是借此学习一下Index
,这个函数我用的也比较少
- 更多学习交流,可加小编微信号
learningBin
更多精彩,请关注微信公众号
扫描二维码,关注本公众号