如何快速在多個工作表或工作簿中搜尋值?
您是否曾經需要找到可能出現在不同工作表,甚至跨多個工作簿的特定值?這是常見的情況,特別是在處理大型專案、月度報告,或當您需要整合保存在多個文件中的資訊時。手動逐一查看每個工作表或文件不僅耗時,而且容易出錯。在本教程中,您將發現幾種有效的方法來高效地搜尋數據,無論您是在一個工作簿內搜尋、跨多個工作簿搜尋,還是需要基於公式或合併數據的解決方案。這些方法可應對您在日常 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 快速在多個已打開的工作簿中搜尋值
當您希望在已經打開的多個工作簿中進行搜尋時,Kutools for Excel 提供了專用的「尋找和替換」面板,使這一過程變得更加容易且有條理。這對於無需編寫腳本或複雜設置就能快速掃描工作簿非常有用,特別適合經常同時處理多個文件且需要一個用戶友好、簡便工具來管理搜尋的用戶。
1. 在任何已打開的工作簿中,前往 Kutools 標籤並選擇 導航。然後點擊 尋找和替換 按鈕 以帶出 尋找和替換 面板,通常位於 Excel 視窗的左側。請參閱截圖:
2. 在 尋找 標籤中,將您想要搜尋的值輸入到 尋找內容 文本框中。從 所有工作簿 的 範圍內 下拉菜單中選擇,以在每個打開的工作簿中執行搜尋。然後點擊 尋找全部 以即時顯示所有匹配單元格的列表及其位置。請參閱截圖:
提示: Kutools for Excel 的高級「尋找和替換」工具不僅能讓您在所有打開的工作簿中搜尋和替換數據,還能專門針對選定的工作表、活動工作簿、當前工作表,甚至是當前選定區域進行操作。這使得您可以根據需求進行靈活控制。
注意事項:在開始搜尋之前,確保所有要搜尋的工作簿都已打開,因為此工具無法搜尋未在 Excel 中打開的文件。
故障排除:如果某些文件不出現在搜尋結果中,請仔細檢查它們是否已完全加載到 Excel 中,並且不在受保護視圖或唯讀模式下,以免限制搜尋訪問。
示範:使用 Kutools for Excel 在多個已打開的工作簿中搜尋值
使用 Excel 公式在多個工作表中搜尋值
在您有幾個已知的工作表名稱,並需要檢查某個特定值是否在這些工作表中存在的情況下,您可以使用 Excel 公式動態搜尋它們。此方法特別適合於希望自動刷新搜尋結果,且工作表列表相對靜態或在另一個表格中進行管理的情況。
此方法要求您事先知道或列出所有要搜尋的工作表名稱。這對於自動檢查、儀表板或每次不想進行全面掃描時建立摘要參考非常有效。
優點: 結果隨著數據變化自動更新;不需要腳本或外掛;所有操作均在工作簿內完成。
缺點: 不適合工作表名稱頻繁變更或工作表數量非常多的情況。
示例場景:假設您有三個名為 Sheet1
、Sheet2
和 Sheet3
的工作表。您想知道特定值(例如 “Invoice123”)在哪個工作表的 A1 單元格中出現,或者只是檢查該值是否存在於這些工作表中。
步驟1:假設您在 D2:D4 中有一份工作表名稱清單(D2: Sheet1,D3: Sheet2,D4: Sheet3)。在 E1 中輸入要搜尋的值(例如,“Invoice123”)。然後,在 F2 中輸入以下公式:
=IF(COUNTIF(INDIRECT("'"&D2&"'!A:A"), $E$1) >0, "Found", "Not Found")
步驟2:將公式從 F2 向下拖動至 F4,以檢查 D2:D4 中列出的所有工作表。這將返回每個工作表的“找到”或“未找到”。
工作原理:該公式使用 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 的一列中提取所有重複值?
最佳 Office 生產力工具
🤖 | Kutools AI 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...
Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單
- 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀。
- 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
- 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!
所有 Kutools 外掛,一次安裝
Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。





- 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用