使用VBA,一鍵查找出多個工作簿下所有工作表內的值

2020-12-11 EXCEL乾貨君

前幾天寫了一個一鍵合併多個EXCEL工作簿的代碼之後,有網友提出能不能寫一個一鍵查找多個工作簿下所有工作表內的值,並將這些值自動標紅的代碼。

我覺得這是個非常實用的技能,於是花了點心思研究出來了,並稍稍將代碼優化了下,以便適應於更多場景。

原始碼如下:

Sub find_value()Dim rng As RangeDim wb As WorkbookDim str As StringDim sht As Worksheetspath = InputBox("請輸入需要合併工作簿的文件路徑,比如文件在D盤的a文件夾下,則輸入D:\a")Text = InputBox("請輸入需要查找的數據")str = Dir(spath & "\*.xls*")Application.DisplayAlerts = FalseFor i = 1 To 200Set wb = Workbooks.Open(spath & "\" & str)For Each sht In wb.SheetsSet rng = sht.Cells.find(Text)If Not rng Is Nothing ThenFor j = 1 To 1000Set rng = sht.Cells.FindNext(rng)rng.Interior.Color = 255If rng Is Nothing ThenExit ForEnd IfNextwb.Savewb.Closestr = DirIf str = "" ThenApplication.DisplayAlerts = TrueEnd Sub

以下是代碼的演示視頻:

代碼使用方法:

1、首先新建一個工作簿,打開「開發工具」選項卡下的「visual basic」工具。

2、在visual basic編輯工具裡選擇一個工作表,再點擊插入,然後點擊「模塊」。

3、在模塊編輯欄裡將代碼粘貼進去,需要運行代碼就按鍵盤的F5即可

關於代碼簡單說明下:

代碼可以自定義工作簿所在的文件夾,自定義需要查找的內容,這在運行代碼之前就會彈出對話框提示,根據提示輸入文件夾路徑與需要查找的內容即可。

最後喜歡的同學記得加個關注點個收藏

相關焦點

  • 一鍵將多個工作簿合併成多個工作表(完善版)
    原文章可以實現一鍵將多個工作簿合併成多個工作表,不過工作表名稱沒有重新改名。詳見:比如,文件夾內有很多工作簿,現在需要將所有工作簿放在Excel不加班教程合併這個工作簿。將模板放在實際要合併的文件夾內,打開模板,運行即可。短短幾秒鐘,就將所有工作簿合併過來。
  • 使用VBA一鍵瞬間合併多個EXCEL工作簿,省時省力又省心
    最近一位同學讓我付費給他寫一段VBA代碼,功能就是合併同一文件夾下的所有工作簿的第一個工作表到同一個工作簿中去,我大概花了二十多分鐘將功能基本寫出來了,又花了點時間研究優化代碼,最後大功告成。合併工作簿的功能應該是日常工作場景用的比較多的,這裡乾貨君將代碼貢獻出來,有需要的同學可以直接複製粘貼使用。
  • Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!
    有時候,你需要將幾十個工作簿中的內容,快速匯總至合併至一個工作簿,如果手動一個複製粘貼,那心裡有苦說不出。。。今天將大家用VBA一鍵合併,只需要幾秒種,為了測試這段代碼,我們新建了4個工作簿在文件夾中,數據都是模擬的,做試驗一鍵合併代碼操作如下所示:我們看原始表格數據,其中,第1個工作簿有點特殊,這個工作簿中,
  • 利用VBA快速將多個工作簿中指定的sheet的數據合併到新的工作簿中
    我們有時候在工作中,需要多個工作簿中的表合併到一個工作簿中,不進行匯總,只是放到一個工作簿,保留原來的表名,這次我們分享一個使用VBA快速解決這個問題的方法,下面我們將VBA代碼分享出來。>Dim wb, wb1 As Excel.WorkbookDim sh As Excel.Worksheets = Split(ThisWorkbook.Name, ".")(1)f = Dir(ThisWorkbook.Path & "\*" & s) '生成查找
  • VLOOKUP函數跨表、跨工作簿查找,你會嗎?
    如果還不懂,再看視頻,這個函數是必須要學會的!查找表問題:根據姓名,查找明細表對應的工資。姓名在明細表的B列,所以區域要從明細表的B列開始選,不是A列,切記!實際工資,在這個區域的第5列。=VLOOKUP(A2,明細表!B:F,5,0)3.跨工作簿查找實際工作上,明細表跟查找表有的時候被放在兩個工作簿中。希望達到的效果是這樣的,就是設置公式以後,以後可以不用打開明細表也可以查找到對應值。
  • 500個工作簿多表,電光火石之間合併成一張總表!只需一句話命令!
    >但是每個工作表結構一樣不能有合併單元格表格的樣子見下圖這樣的很多個工作簿合併在一起有vba的方法也有Power Query的方法見以前分享過的文章超級牛牛牛,100個工作簿裡的多表數據,迅雷不及掩耳之勢導入到一張總表裡,你從未見過珍藏!
  • 不要再用Ctrl C了,工作簿拆分、合併一鍵生成,工作再忙也要看……
    VIP學員的問題,要將多個工作簿合併在同一個工作簿的多個工作表,再進行逆向操作,將多個工作表拆分成多個工作簿。多個工作表拆分成多個工作簿在VBA後臺,運行代碼,觀察左邊,你會看到一個個工作簿拆分出來,稍等幾秒,就拆分好了。
  • Excel VBA 實例(22) - 一鍵篩選其他工作表或工作簿的數據
    需求情況是這樣的,這裡有一張學校所有班級的總成績表,簡化如下圖:能否實現一鍵把各個班級的成績篩選出來,顯示在「班級成績表」當中,如下圖:也就是實現這樣的效果,點擊「3班」,就出現3班所有同學的成績:大體思路1、設計一個下拉菜單,裡面含有所有的班級名。2、編寫vba事件,一旦班級名發生變化,則進行篩選。3、編寫篩選vba代碼。具體步驟1、設計下拉菜單。
  • Excel VBA:匯總多個工作簿每個工作表名稱包含指定關鍵詞的數據
    今天再分享下匯總指定文件夾下每個工作簿中工作表名稱包含某個指定關鍵詞的小代碼(當不指定關鍵詞時,則默認匯總所有工作表數據)。舉個慄子。假設有一文件夾,內有十幾個工作簿,每個工作簿又各有多個不等數量的工作表,現在我們只想匯總每個工作簿中工作表名稱包含「看見星光」的數據,那就可以使用我們今天分享的小代碼了。如果是想把所有工作表的數據一股腦全部匯總呢?
  • 【VBA乾貨】快快收藏吧
    ActiveWorkbook.SaveLinkValues= False                        '不保存活動工作簿的外部連結值
  • 快如閃電,excel一鍵合併工作簿【Excel教程】
    今天就跟大家介紹下使用Power Query合併工作簿,這樣工作簿裡不管是工作表變動還是數據變動都能一鍵刷新匯總了。趕快來學習吧!上次的教程沒有學習的小夥伴先學習之前的喲,點擊可查看:《excel一鍵生成報表,快到沒朋友!》
  • 收藏 | 27個Excel vba實例匯總(附贈VBA教程)
    ,大致分類如下:單元格操作實例(1)- 批量製作工資表頭實例(5)- 快速合併n多個相同值的單元格實例(9)- 批量插入、刪除表格中的空行實例(11)- 拆分單元格並自動填充實例(12)- 如何合併多個單元格而不丟失單元格的數據?
  • Excel表格把數據按類別快速拆分到不同工作表或工作簿
    Excel表格複製多個工作簿的數據到一個工作表有時並不是所有的數據都能共享,這時就需要把數據按類別拆分到不同的工作表或者工作簿裡實例要求:下圖是某水果超市的進貨需求表。我們需要按產品的名稱匯總出各個品種水果的需求量,而且要把不同的數據放在不同的工作簿裡發給不同的採購人員。
  • VBA代碼大全010:用vba遍歷文件夾及其子文件夾內的文件
    vba老手都知道,vba寫多了,其實都是在做循環。循環處理多個單元格的內容,循環處理多個工作表的內容,循環處理多個工作簿的內容。
  • VBA合併工作簿(Workbook)
    本節我們要介紹的是:怎麼才能把分布在「多個工作簿文件中的多個工作表中」的數據合併到同一個工作簿文件的同一個工作表裡面。
  • Excel把多張表內數據導成新表太麻煩?掌握這兩點,用VBA超簡單!
    在Excel表中,我們經常使用到各種各樣的函數來提高我們的工作效率,其中indirect跨表引用函數,常常是我們來應對多張數據匯總數據是的得力助手。尤其碰到我們需要把多個工作表內指定某一列或者某一行導進新的表格時,更是需要indirect函數來幫我們。比如我們需要把一個工作簿下的多張工作表內的A5單元格內的數據導出到新的工作表內。那麼就需要我們在導出所有工作表名字的匯總表內的B2單元格內輸入=INDIRECT(A2&"!
  • 2招教你破掉Excel工作表密碼,10秒都不用,工作簿也可以
    ----嵇康《代秋胡歌詩 其六》在我們平時工作中,經常會遇到有的Excel工作簿是設有密碼的,當我們想修改裡面的內容的時候,是沒辦法修改的,這時候我們可能對這個表格就束手無策了。尤其有時候比較鬱悶的是,這個表格是自己設置的密碼,然後想不起來了,這時候就更尷尬了。。。
  • 如何將多個表格中數據匯總到一張表中
    前幾天有個讀者在後臺留言,如何將多個表格中的數據匯總到一張表裡。筆者查詢了相關資料,發現目前除了用vba編寫代碼之外,沒有特別簡單的方法,而寫代碼這件事情,非一日之功。利用「方方格子」這個插件,只需幾步就可以將多個表格中的數據進行匯總。直接在官網就可以下載,目前也還是免費使用的。這個問題分為兩種情況,一種是幾張工作薄的數據需要匯總到同一個工作簿上,還有一種情況是同一個工作薄有幾個sheet表,需要匯總到一個sheet中。
  • Excel 使用技巧-快速查找
    【學員問題】:Excel 使用技巧-快速查找?  【解答】 Excel 使用技巧快速查找在執行查找操作之前,可以將查找區域確定在某個單元格區域、整個工作表(可選定此工作表內的任意一個單元格)或者工作簿裡的多個工作表範圍內。在輸入查找內容時,可以使用問號(?)和星號(*)作為通配符,以方便查找操作。問號(?)
  • 多個工作簿合併求和,最快的方法
    合併多個工作簿鑑於有些人沒辦法使用pq,今天盧子分享VBA的方法。為了方便演示,文件夾內放4個工作簿,其實即使40個也一樣,沒啥區別。所有工作簿的格式一樣,標題都在第一行。Step 01 將合併模板放在文件夾內。