Excel Vba 跨表查询功能

如题,希望在sheet1输入任何内容,即可将光标定位到sheet2,sheet3.....的与输入的值相同的单元格,如果有多个,即以第一个单元格位置为准,如果写这个代码,望高手提点提点!!

1、下面是总表,有一千个学生的资料,我这里只举几项资料,如姓名、性别、出生年月日、学号、民族。

2、插入一个工作表,命名“一(1)班”,这个是自己班学生的名字,班主任当然很快打得出来。

3、现在B2单元格里输入“=VLOOKUP($A2,总表!$A$2:$E$1000,2,0)”,回车就可以显示小明的性别了。

注意:输入内容必须是英文状态下输入。

解释:$A2 代表本工作表要查找的单元格(意思是要到别的工作表查找与这个单元格相同的内容)

总表! 代表要查找的工作表(要在“总表”工作表里查找)

$A$2:$E$1000找在哪个范围查找,即A2到E1000这个范围内2代表要显示哪一列的数据,即查找范围是A2到B7,那A列为第1列,我想显示B列的数据,B(性别)列为第2列。

4、选中B2这一格,鼠标移到右下角出现黑十字时,单击左键不放往下拉,拉到最后一名学生再放开,所有的学生的性别就出现了。

5、再回来B2,像上面一步一样往右拉。

一看效果怎么打横的全都是性别,再看下一步。

6、选中C2,看看函数栏,原来要显示的列数还没改,还是第2列,那“出生年月日”是第3列,就改为3,再回车。

效果出来了,看到出生年月了,然后用上面的方法往下拉,把全班的拉出来。

7、如此类推,把其他列改过来之后,再往下拉,那么就可以显示所有的资料了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-06
是跨工作簿还是只在同一个表中查询,另外工作簿是否打开呢,这些条件不一样,需要的代码不一样。
第2个回答  推荐于2016-07-14
在sheet1的代码区域输入如下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target = "" Then
Exit Sub
End If
For i = 2 To ThisWorkbook.Sheets.Count
Set c = Sheets(i).Cells.Find(Target, ActiveCell, , xlWhole)
If Not c Is Nothing Then
Sheets(i).Select
Sheets(i).Range(c.Address).Activate
Exit Sub
End If
Next i
End Sub

'功能还比较单一,如有进一步要求,可以hi我本回答被提问者采纳
相似回答