你还在为跨表查询数据而烦恼吗?是不是每次都得绞尽脑汁地用那些复杂的公式,比如filter、vlookup之类的,还得嵌套不同的函数?

而且,最让人头疼的是,每当工作表有增减,之前的公式就得跟着改,简直是要命!

我深知这种痛苦,因为我也曾经历过。

我今天要跟大家分享一种一劳永逸的跨表查询方法。

只要掌握了这招,不管你增加多少张工作表,还是删除多少张,都能轻松搞定,再也不用为修改公式而发愁了!

首先,咱们得打开Excel,找到那个“开发工具”选项卡。

一劳永逸!Excel跨表查询再也不用改公式了!-趣帮office教程网

如果你的Excel里没有,别急,点击“文件”选项,进入“选项”设置,然后在“自定义功能区”里把“开发工具”勾上就行了。

一劳永逸!Excel跨表查询再也不用改公式了!-趣帮office教程网

接下来,咱们要点进“开发工具”里的“Visual Basic”,进入那个VBA编辑环境。

然后,右键点击左侧的“VBAProject”,选择“插入”-“模块”。

一劳永逸!Excel跨表查询再也不用改公式了!-趣帮office教程网

这时候,一个新窗口就弹出来了,咱们就可以在里面编写代码了。

说到代码,我已经为大家准备好了一段神奇的代码。这段代码就像是一个魔法咒语,能让你的跨表查询变得简单又快捷。

一劳永逸!Excel跨表查询再也不用改公式了!-趣帮office教程网

Sub 跨表查找工资信息()
Dim Tim As Date, arr(), i As Long, 姓名 As String, FirstAddress As String, cell As Range
Worksheets("工资查询").Range("A2:M10").Clear
姓名 = Application.InputBox("您想查找谁的工资?请输入关键字", "查找目标", , , , , , 2)
If 姓名 = "False" Then Exit Sub
For i = 1 To Worksheets.Count - 1
Set cell = Worksheets(i).Range("A:A").Find(what:=姓名, LookAt:=xlPart)
If Not cell Is Nothing Then
FirstAddress = cell.Address
Do
n = n   1
ReDim Preserve arr(1 To 13, 1 To n)
arr(1, n) = Worksheets(i).Name
arr(2, n) = cell.Value
For j = 1 To 11
arr(j   2, n) = cell.Offset(0, j).Value
Next j
Set cell = Sheets(i).Range("A:A").FindNext(cell)
If cell.Address = FirstAddress Then Exit Do
Loop
End If
Next
If i > 0 Then
brr = WorksheetFunction.Transpose(arr)
Worksheets("工资查询").Range("A2").Resize(UBound(arr, 2), UBound(arr, 1)) = brr
Worksheets("工资查询").Range("A1:M" & i).Borders.LineStyle = xlContinuous
End If
End Sub

️最后一步,咱们回到Excel工作表,插入一个形状,比如矩形。

一劳永逸!Excel跨表查询再也不用改公式了!-趣帮office教程网

然后,右键点击这个形状,选择“编辑文字”,输入“跨表查询人员工资”。

一劳永逸!Excel跨表查询再也不用改公式了!-趣帮office教程网

再右键点击形状,选择“指定宏”,把咱们刚才编写的宏关联到这个形状上。

一劳永逸!Excel跨表查询再也不用改公式了!-趣帮office教程网

一劳永逸!Excel跨表查询再也不用改公式了!-趣帮office教程网

现在,一切就大功告成了!

每当你需要跨表查询人员工资时,只需轻轻一点这个形状,结果就立马呈现在你眼前。

再也不用为那些复杂的公式和频繁的修改而烦恼了!

这种方法真的是既简单又实用,大大提高了我的工作效率。

我相信,只要你掌握了这招,也一定能成为办公室里的跨表查询高手!