如何在多个工作表或工作簿中快速查找某个值?
您是否曾需要查找一个可能分散在不同工作表甚至多个工作簿中的特定值?这种情况在处理大型项目、月度报告,或整合分散于多个文件中的信息时极为常见。手动逐个翻阅每个工作表或文件不仅耗时费力,还容易出错。在本教程中,您将掌握几种高效搜索数据的方法——无论是在单个工作簿内、跨多个工作簿,还是借助公式或数据整合方案——全面满足您在日常 Excel 工作流及数据分析项目中的实际需求。
使用 Kutools for Excel 在多个已打开的工作簿中快速搜索值![]()
使用查找和替换函数在工作簿的多个工作表中搜索值
Excel 的查找和替换功能是一种基础却高效的方法,可快速在同一工作簿的多个工作表中定位特定值。当您明确知道要搜索哪些工作表,或数据在单个文件中结构清晰时,此方法尤为实用。虽然不支持跨文件或已关闭工作簿的搜索,但它提供了一种直接又快捷的查找方式。
1. 首先,按住 Ctrl 键,并依次单击工作表标签栏中的每个工作表标签,以选择您希望纳入搜索范围的工作表。这样即可确保搜索同时应用于所有选定的工作表。参见截图:

2. 选中所需工作表后,按下 Ctrl + F 即可打开查找和替换对话框。在“查找”选项卡下的“查找内容”文本框中输入要查找的值,然后单击“查找全部”按钮。Excel 将立即显示选中工作表中包含该搜索值的所有单元格及其位置列表。参见截图:

提示:查找和替换工具仅在已打开且可见的选中工作表中进行搜索。如需将搜索范围扩展至其他工作表,请务必按上述方法将其选中;若不慎遗漏某个工作表,只需将其加入选择后重新执行操作即可。
注意事项:此方法无法搜索已关闭或隐藏的工作簿,也不会自动高亮显示单元格——仅会列出结果,供您快速导航。
故障排除:若未看到预期结果,请再次检查工作表选择,并确认未启用任何可能隐藏或限制搜索的筛选器或单元格保护。
轻松地在多个工作表和工作簿中查找和替换值 |
Kutools for Excel 的高级查找和替换功能,可在多个工作表甚至所有已打开的工作簿中高效搜索并替换值。借助这一强大功能,您在处理大型数据集时能节省时间、避免错误,让 Excel 任务更快、更精准! |
![]() |
Kutools for Excel——通过 300 多个必备工具大幅提升 Excel 能力,让您的工作更快、更轻松,并借助 AI 功能实现更智能的数据处理与更高效率。立即获取 |
使用 VBA 在文件夹中的所有工作簿中搜索值
如果您需要在文件夹中的多个工作簿(包括尚未打开的文件)中搜索特定值,Excel 内置工具无法直接满足这一需求。此时,借助 VBA(Visual Basic for Applications)宏,即可自动完成整个流程:系统化地打开文件夹中的每个工作簿,遍历所有工作表,并精准记录匹配项的位置。该方法尤其适用于定期审计,或在归档文件及批量文件中高效查找目标值。
1. 首先在 Excel 中打开一个新的(或空白)工作簿,选择要显示搜索结果的单元格(通常为 A1 单元格),然后按下 Alt + F11 以启动 Microsoft Visual Basic for Applications 编辑器窗口。
2. 在 VBA 编辑器中,依次点击插入 > 模块,即可创建新模块,然后将以下 VBA 代码粘贴到模块窗口中。
VBA:在文件夹内的所有工作簿中搜索指定值。
Sub SearchFolders()
'UpdatebyKutoolsforExcel20200913
Dim xFso As Object
Dim xFld As Object
Dim xStrSearch As String
Dim xStrPath As String
Dim xStrFile As String
Dim xOut As Worksheet
Dim xWb As Workbook
Dim xWk As Worksheet
Dim xRow As Long
Dim xFound As Range
Dim xStrAddress As String
Dim xFileDialog As FileDialog
Dim xUpdate As Boolean
Dim xCount As Long
Dim xAWB As Workbook
Dim xAWBStrPath As String
Dim xBol As Boolean
Set xAWB = ActiveWorkbook
xAWBStrPath = xAWB.Path & "\" & xAWB.Name
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a forlder"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
xStrSearch = "KTE"
xUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xOut = Worksheets.Add
xRow = 1
With xOut
.Cells(xRow, 1) = "Workbook"
.Cells(xRow, 2) = "Worksheet"
.Cells(xRow, 3) = "Cell"
.Cells(xRow, 4) = "Text in Cell"
Set xFso = CreateObject("Scripting.FileSystemObject")
Set xFld = xFso.GetFolder(xStrPath)
xStrFile = Dir(xStrPath & "\*.xls*")
Do While xStrFile <> ""
xBol = False
If (xStrPath & "\" & xStrFile) = xAWBStrPath Then
xBol = True
Set xWb = xAWB
Else
Set xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False)
End If
For Each xWk In xWb.Worksheets
If xBol And (xWk.Name = .Name) Then
Else
Set xFound = xWk.UsedRange.Find(xStrSearch)
If Not xFound Is Nothing Then
xStrAddress = xFound.Address
End If
Do
If xFound Is Nothing Then
Exit Do
Else
xCount = xCount + 1
xRow = xRow + 1
.Cells(xRow, 1) = xWb.Name
.Cells(xRow, 2) = xWk.Name
.Cells(xRow, 3) = xFound.Address
.Cells(xRow, 4) = xFound.Value
End If
Set xFound = xWk.Cells.FindNext(After:=xFound)
Loop While xStrAddress <> xFound.Address
End If
Next
If Not xBol Then
xWb.Close (False)
End If
xStrFile = Dir
Loop
.Columns("A:D").EntireColumn.AutoFit
End With
MsgBox xCount & " cells have been found", , "Kutools for Excel"
ExitHandler:
Set xOut = Nothing
Set xWk = Nothing
Set xWb = Nothing
Set xFld = Nothing
Set xFso = Nothing
Application.ScreenUpdating = xUpdate
Exit Sub
ErrHandler:
MsgBox Err.Description, vbExclamation
Resume ExitHandler
End Sub
3. 按下 F5 键或单击运行按钮以执行此宏,随后将弹出一个选择文件夹对话框窗口,供您选择包含待搜索工作簿的文件夹。参见截图:

4. 单击确定。搜索完成后,消息框将显示包含指定值的单元格总数。参见截图:

5. 单击确定关闭消息框后,所有找到该值的位置将列于一个新工作表中,包括工作簿名称、工作表名称、单元格引用以及供您审核的精确单元格内容。

提示:当前搜索词在 VBA 中已设为 “KTE”。您只需修改代码中的 xStrSearch = "KTE"这一行,即可将其替换为任意要查找的内容。
注意事项:运行前,请确保所有相关工作簿均已保存并关闭(运行宏的工作簿除外,可保持打开状态)。包含大量或复杂 Excel 文件的文件夹可能需要较长时间处理,执行过程中请勿中断宏。
故障排除:如遇错误,请确认所有文件均为有效的 Excel 工作表(未损坏且未受密码保护),并确保宏安全设置允许运行代码。若宏未能完成执行,建议先在较小的文件集上尝试运行。
使用 Kutools for Excel 在多个已打开的工作簿中快速搜索值
当您需要在 Excel 会话中已打开的多个工作簿间执行搜索时,Kutools for Excel 的查找和替换窗格让整个过程更加简便有序。此功能无需编写脚本或复杂设置,即可快速扫描多个工作簿,是经常同时处理多文件、追求高效与直观操作体验用户的理想之选。
1. 在任一已打开的工作簿中,转到 Kutools 选项卡,选择导航,然后点击查找和替换按钮
,即可调出位于 Excel 窗口左侧的查找和替换窗格。参见截图:

2. 在“查找”选项卡中,将要搜索的值输入“查找内容”文本框,从“所有工作簿”下拉菜单中选择“范围”,即可在所有已打开工作簿中执行搜索;然后单击“查找全部”,立即显示所有匹配单元格及其位置的列表。参见截图:
提示:Kutools for Excel 的高级查找和替换工具不仅支持在所有已打开工作簿中搜索和替换数据,还可针对选中的工作表、当前工作簿、当前工作表,甚至仅限当前选区进行精准操作,满足您的个性化需求,实现高效定制化控制。
注意事项:开始搜索前,请确保所有待搜索的工作簿均已打开,因为此工具无法搜索当前未在 Excel 中打开的文件。
故障排除:如果某些文件未出现在搜索结果中,请再次确认它们是否已在 Excel 中完全加载,并确保未处于受保护视图或只读模式——这些状态可能会限制搜索访问。
演示:使用 Kutools for Excel 在多个已打开工作簿中搜索值
使用 Excel 公式在多个工作表中搜索值
当您的工作簿中包含多个已知名称的工作表,且需要检查某个特定值是否存在于这些工作表中及其具体位置时,可使用 Excel 公式在这些工作表中动态搜索。此方法特别适用于希望搜索结果自动刷新,且工作表列表相对固定或已在单独表格中集中管理的场景。
此方法要求您事先已知或列出所有要搜索的工作表名称。它最适合用于自动化检查、仪表板,或在无需每次执行完整扫描即可构建汇总引用的场景。
优点:数据更新时结果自动同步;无需脚本或加载项;所有操作均在工作簿内完成。
缺点:不适用于工作表名称频繁变动或工作表数量极多的场景。
示例场景:假设您有三个工作表,分别命名为 Sheet1、Sheet2 和 Sheet3. 您希望确认特定值(例如“Invoice 123”)是否出现在这些工作表的 A1 单元格中,或是否存在于任意位置。
步骤 1. 假设您已在 D2:D4 中列出工作表名称(D2: Sheet 1,D3: Sheet 2,D4: Sheet 3),并在 E1 中输入要搜索的值(例如“Invoice 123”)。接着,在 F2 中输入以下公式:
=IF(COUNTIF(INDIRECT("'"&D2&"'!A:A"), $E$1) >0, "Found", "Not Found") 步骤 2. 将 F2 中的公式向下拖动至 F4,即可检查 D2:D4 中列出的所有工作表,并为每个工作表返回“Found”(找到)或“Not Found”(未找到)。
工作原理:该公式通过 INDIRECT 函数为每个列出的工作表创建引用,并利用 COUNTIF 函数检查 E1 中的值是否出现在各工作表的 A 列中。如有需要,可将范围 A:A 调整为其他列或特定区域(例如 )A1:Z100)。
额外提示:若要获取包含该值的工作表名称列表,请使用以下数组公式(在旧版 Excel 中按 Ctrl + Shift + Enter 输入,或在 Microsoft 365/Excel 2021+ 中作为普通公式输入):
=TEXTJOIN(", ",TRUE,IF(COUNTIF(INDIRECT("'"&D2:D4&"'!A:A"), $E$1)>0, D2:D4, "")) 该公式将返回一个逗号分隔的列表,其中包含所有找到该值的工作表名称。请注意,INDIRECT 函数仅适用于已打开的工作簿,无法用于搜索已关闭的文件。
注意事项:若工作表名称被更改或删除,公式将返回#REF!错误;请务必确认工作表名称列表准确无误。对于大型工作簿,使用 INDIRECT 函数的公式可能会影响性能。
故障排除:若出现错误,请检查所有引用的工作表是否存在,以及搜索范围是否设置正确。对于动态工作表列表,建议使用命名区域或数据验证功能,即可自动更新工作表列表。
相关文章:
- 如何快速在多个工作表或整个工作簿中执行查找和替换操作?
- 如何在多个已打开的 Excel 文件中快速执行查找和替换操作?
- 如何在 Excel 中找出最大的负值(即小于 0 的最大数值)?
- 如何从 Excel 的一列中提取所有重复项?
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱
