前幾天寫了一個一鍵合併多個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即可。
關於代碼簡單說明下:
代碼可以自定義工作簿所在的文件夾,自定義需要查找的內容,這在運行代碼之前就會彈出對話框提示,根據提示輸入文件夾路徑與需要查找的內容即可。
最後喜歡的同學記得加個關注點個收藏