快捷搜索:  汽车  科技

vba获取自己添加附件的超链接(VBA递归列出文件并进行超链接)

vba获取自己添加附件的超链接(VBA递归列出文件并进行超链接)图2:插入按钮控件下面就讲一下如何实现这样的功能。1.新建可运行宏的excel文件;2.excel菜单:开发工具->插入->表单控件->按钮控件,如图2所示。

VBA递归列出文件并进行超链接

工作中经常需要打开文件夹查找文件,包括子文件夹中的文件,有时我们忘记放在了哪个文件夹中了,用电脑自带搜索又比较慢,不记得文件名称也无法使用everything软件,查找文件浪费时间。用excel自带VBA,简单实现了这样的功能,就是列出文件夹包括子文件夹中的所有文件,并以超链接的形式显示到excel单元格中,如图1所示。点击打开,即可打开相关的文件,直接查看文件内容,比较方便。



vba获取自己添加附件的超链接(VBA递归列出文件并进行超链接)(1)

图1:列出文件并超连接

下面就讲一下如何实现这样的功能。

1.新建可运行宏的excel文件;

2.excel菜单:开发工具->插入->表单控件->按钮控件,如图2所示。



vba获取自己添加附件的超链接(VBA递归列出文件并进行超链接)(2)

图2:插入按钮控件

3.对按钮1,右键->指定宏->编辑,弹出VBA编译器对话框,如图3所示;



vba获取自己添加附件的超链接(VBA递归列出文件并进行超链接)(3)

图3:VBA编译器

4.把附录1代码copy到VBA模块中,如图4所示,然后保存。点击图2中的按钮,则可实现图1中的效果;



vba获取自己添加附件的超链接(VBA递归列出文件并进行超链接)(4)

图4:VBA代码

附录1:代码

Sub 按钮1_Click()

Sheet1.Cells.Clear

Dim fs As Object

Dim floder As Object

Dim filename As Object

Dim mydir As String

mydir = ThisWorkbook.Path

Set fs = CreateObject("scripting.filesystemobject")

Set floder = fs.getfolder(mydir)’打开excel所在位置的文件夹

Call serachfiles(floder)’调用递归函数

End Sub

Sub serachfiles(ByVal fd As Object)’递归函数

Dim fl As Object

Dim sfd As Object

Dim b1 As Integer

b1 = Sheet1.Range("A65536").End(xlUp).Row

For Each fl In fd.Files’列出当前文件夹中的文件,并进行超级连接

b1 = b1 1

Sheet1.Cells(b1 1) = fl.Name

ActiveSheet.Hyperlinks.Add anchor:=Sheet1.Cells(b1 2) Address:=fl.Path TextToDisplay:="打开"

Next fl

If fd.subfolders.Count = 0 Then’若没有子文件,则跳出程序

Exit Sub

End If

For Each sfd In fd.subfolders’逐个扫描子文件夹,调用本程序。

Call serachfiles(sfd)

Next

End Sub

私信可以交流EXCEL VBA的知识,也可获得本程序的电子版。

猜您喜欢: