首页> 职场办公> 还在手动查找EXCEL工作表内的值

[文章]还在手动查找EXCEL工作表内的值

收藏
0 370 0

前几天写了一个一键合并多个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即可。

 

 

关于代码简单说明下:

 

代码可以自定义工作簿所在的文件夹,自定义需要查找的内容,这在运行代码之前就会弹出对话框提示,根据提示输入文件夹路径与需要查找的内容即可。

职场办公
最近热帖
{{item.Title}} {{item.ViewCount}}
近期热议
{{item.Title}} {{item.PostCount}}