如何用excel vba按关键字选择性的遍历文件夹搜索文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用excel vba按关键字选择性的遍历文件夹搜索文件?相关的知识,希望对你有一定的参考价值。

图1为要求,图2、图3是预计达到的效果

Excel怎样批量提取文件夹和子文件夹所有文件

怎样批量提取文件夹下文件名


追问

我的目的不全部提取,而根据关键字来提取,谢谢你的回答

追答

Sub 查询文件()

'2014-3-16 9:22:15 用于文件夹下文件查询

Dim m1$, m2$, m$, r%

m1 = Range("b1").Text

m2 = Range("b2").Text

Range("a4:c10000").ClearContents

m = Dir(m1 & "\\", vbReadOnly)

r = 3

Application.ScreenUpdating = False

While m <> ""

If m Like m2 Then

    r = r + 1

    Range("a" & r).Value = r - 3

    Range("b" & r).Value = m

End If

m = Dir

Wend

Application.ScreenUpdating = True

MsgBox "完成"

End Sub

追问

我的目的类似于XP系统的文件查找,谢谢你的回答

参考技术A 1.新建EXCEL工作薄,同时按下组合键ALT+F11调出VBA开发编辑器;
2.点击“工具-引用(R)”;
3.勾选“Microsoft Scripting Runtime”,点击确定;
4.在左侧工程窗口中单击右键,点击“插入-模块”;追问

不知道代码怎么写,请指导

参考技术B

写过这个,根据关键字查询文件,并提取路径赋予超链接

追问

能否具体点,望指教!445249563@qq.com

Excel中如何用VBA判断行数?

例如我已经有三十行数据了,我怎样操作才能获得这个30的数值并应用于其他模块中?以后我可能有三十一、三十二行数据,怎样能灵活地统计出来?谢谢!

1、同时按下“win+R”键,在打开的运行对话框中输入“excel”回车,打开一个新建的excel文档。

2、在打开的excle窗口,依次点击工具栏“开发工具”——“Visual Basic”或直接按快捷键“ALT+F11”,打开VB编辑器。

3、双击左侧工程窗口中的“sheet1”,打开“sheet1”代码编辑窗口。

4、在代码窗口的下拉框中,分别选择“Worksheet”、"SelectionChange",下面会自动生成相应的过程块代码。

5、在过程中写入代码:

If (Target.Columns.Count = Sheet1.Columns.Count) And (Target.Row <= Range("b4").Row) And (Target.Row + Target.Rows.Count > Range("b4").Row) Then

MsgBox "yes"   

Else    

MsgBox "no"    

End If

6、再回到excel窗口,测试一下代码是否能够正确运行,可以看到结果很成功。

参考技术A

Excel中用VBA判断行数的方法:

1、VBA中可以用CurrentRegion.Rows.Count属性获得连续的数据区域的行数。

2、'选择A2单元格周围连续有数据的区域,并将其行数值赋予HROW
3、HROW=Sheets("sheet1").[A2].CurrentRegion.Rows.Count

参考技术B VBA中可以用CurrentRegion.Rows.Count属性获得连续的数据区域的行数

'选择A2单元格周围连续有数据的区域,并将其行数值赋予HROW

HROW=Sheets("sheet1").[A2].CurrentRegion.Rows.Count本回答被提问者采纳
参考技术C 图省事儿的话,Excel本身有公式可以实现此功能。如必须在VBA中调用,可考虑用Worksheetfunction进行内置公式的引用。 参考技术D 要提供实际例才可以处理

以上是关于如何用excel vba按关键字选择性的遍历文件夹搜索文件?的主要内容,如果未能解决你的问题,请参考以下文章

Excel中如何用VBA判断行数?

如何用EXCEL的VBA控制WORD文档?

如何用EXCEL VBA批量提取JPG文件日期时间信息到表格中?

Excel 如何用VBA提取当前电脑的硬件信息

如何用bat遍历文件,并找到文件名包含某字符的文件吗?

excel如何用vba批量提取指定工作表?