Note: The other languages of the website are Google-translated. Back to English

如何在多個工作表或工作簿中快速搜索值?

您是否曾經想過要在Excel中的多個工作表或工作簿中搜索某個值? 本教程介紹了一些不同的方法來解決有關在多個工作表中搜索或在多個工作簿中進行搜索的問題。

使用查找和替換功能在工作簿的多個表中搜索值

使用VBA在文件夾的所有工作簿中搜索值

使用Kutools for Excel在多個打開的工作簿中快速搜索值 好主意3


用Excel的 查找和替換 函數,您可以在多張紙上找到某個值。

1.按住要選擇多個工作表標籤以從中尋找價值 按Ctrl 鍵並單擊工作表中的 工作表標籤欄 逐個。 看截圖:

多頁中的doc搜索值1

2.然後按 Ctrl + F 使之成為可能 查找和替換 窗口,然後在 查找內容 下的文本框 發現 選項卡,然後單擊 找到所有 按鈕列出所有結果。 看截圖:

多頁中的doc搜索值2


在工作表和工作簿中查找和替換價值

Excel的Kutools的進階 查找和替換 功能,可以幫助您跨多個工作表和已打開的工作簿查找和替換值。  免費下載
尋找替代
 
Kutools for Excel:擁有超過 300 個方便的 Excel 加載項,免費試用,不受限制 30 天。

如果要從文件夾中搜索所有已關閉工作簿中的值,則只能應用VBA來解決它。

1.啟用一個新工作簿並選擇一個單元格,然後按 Alt + F11鍵 打開鑰匙 Microsoft Visual Basic應用程序 窗口。

2。 點擊 插入 > 模塊 並將其粘貼到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 鍵或 按鈕執行此VBA, 選擇一個文件夾 彈出對話框,提醒您選擇要從中搜索值的文件夾。 看截圖:

多頁中的doc搜索值3

4.然後單擊 OK 彈出另一個對話框,提醒您已找到單元格的數量。 看截圖:

多頁中的doc搜索值4

5。 點擊 OK關閉 它,所有找到的單元格都在當前工作表中列出,並帶有相應的信息。

多頁中的doc搜索值5

小提示: 在以上VBA中,您搜索值 “ KTE”,您可以更改 “ KTE” 從這個 xStrSearch =“KTE" 您需要的另一個值。


如果您只想在多個打開的工作簿中搜索值,則可以使用 Kutools for Excel'先進的 查找和替換 效用。

Excel的Kutools, 與以上 300 方便的功能,使您的工作更加輕鬆。 

免費安裝 Kutools for Excel,請執行以下操作:

1.在其中一個打開的工作簿中,單擊 庫工具 > 導航,然後單擊 查找和替換 按鍵 doc查找按鈕查找和替換 窗格。 看截圖:

多頁中的doc搜索值6

2。 然後點擊 發現 標籤,然後在 查找內容 文本框,然後選擇 所有工作簿 來自 下拉列表,然後單擊 找到所有 列出所有找到的單元格。 看截圖:
doc kutools查找替換2

小提示:

這款獨特的敏感免洗唇膜採用 Moisture WrapTM 技術和 Berry Mix ComplexTM 成分, Excel的Kutools的進階 查找和替換 實用程序,您可以跨多個工作簿,所有工作簿,活動工作簿,活動工作表或選定內容搜索和替換選定工作表中的值。
doc kutools查找替換3


相關文章:


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (18)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
感謝那個 VBA,它可以完美地搜索多個 excel 文件,但是可以讓它返回帶有參考號的第 5 列嗎? 別的
xCount = xCount + 1
x行 = x行 + 1
.Cells(xRow, 1) = xWb.Name
.Cells(xRow, 2) = xWk.Name
.Cells(xRow, 3) = xFound.Address
.Cells(xRow, 4) = xFound.Value
.Cells(xRow, 5) = ???
網站主持人對此評論進行了最小化
感謝那個 VBA,它可以完美地搜索多個 excel 文件,但是可以讓它返回帶有參考號的第 5 列嗎? 別的
xCount = xCount + 1
x行 = x行 + 1
.Cells(xRow, 1) = xWb.Name
.Cells(xRow, 2) = xWk.Name
.Cells(xRow, 3) = xFound.Address
.Cells(xRow, 4) = xFound.Value
.Cells(xRow, 5) = ???
網站主持人對此評論進行了最小化
這就是我希望它返回分配給單元格中所有文本的“站點指令”
工作簿工作表單元格站點說明中的單元格文本
班次報告 Emicc 01-10-17.xlsx Sheet1 $D$20 CMS 安裝 1773
班次報告 Emicc 01-10-17.xlsx Sheet1 $D$21 CMS 安裝 1763
班次報告 Emicc 01-10-17.xlsx Sheet1 $D$24 CMS 安裝 1551
網站主持人對此評論進行了最小化
謝謝。 它對我幫助很大=)
網站主持人對此評論進行了最小化
如何添加另一列並將始終為 3 列的值放在找到的值的右側?
網站主持人對此評論進行了最小化
對不起,我幫不了你,你可以去論壇 https://www.extendoffice.com/forum.html 繼續這個問題,也許有人可以幫助你。
網站主持人對此評論進行了最小化
你有沒有想過這個? 我也需要那個。
網站主持人對此評論進行了最小化
您的代碼效果很好,我正在尋找在 excel 文件中找到兩個文本的代碼,您知道這怎麼可能嗎?
網站主持人對此評論進行了最小化
對不起,我不知道這個問題,你可以去我們的論壇 https://www.extendoffice.com/forum.html 繼續這個問題,也許有人知道答案。
網站主持人對此評論進行了最小化
非常適合我需要的東西,除了它每次搜索都會創建一個新工作表。 我將如何修改代碼以對每個搜索使用單個工作表而不是創建一個新工作表? 謝謝,詹姆斯
網站主持人對此評論進行了最小化
太棒了,這工作完美,
你能幫我嗎,我想為找到值的每個單元格創建一個超鏈接。

預先感謝
網站主持人對此評論進行了最小化
我也是我想要的! :)
網站主持人對此評論進行了最小化
科莫一般 códigos qr
網站主持人對此評論進行了最小化
如何在 C 列下為同一代碼中的所有單元格值創建超鏈接?
網站主持人對此評論進行了最小化
嗨,在我的案例工作表中,記錄超過 1 萬,腳本失敗。
網站主持人對此評論進行了最小化
嗨,Dhireesh,VBA 代碼有其自身的局限性。 您可以嘗試 Kutools for Excel 的查找和替換,但它可能會運行緩慢,請耐心等待,最好先保存工作簿。
網站主持人對此評論進行了最小化
程序在這裡停止:

設置 xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False)
網站主持人對此評論進行了最小化
嗨,邁克,我已經更新了文章中的 VBA,請重試。 如果有任何問題,請告訴我,謝謝。
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護