Excel:获取某目录下的所有文件信息

有时候,我们需要获取某个文件夹目录下的所有文件信息,并将它们的路径、文件大小、修改时间等都列出来,并做快捷打开方式,供我们统筹管理。Excel能

有时候,我们需要获取某个文件夹目录下的所有文件信息,并将它们的路径、文件大小、修改时间等都列出来,并做快捷打开方式,供我们统筹管理。

Excel能实现如此“智能”的功能吗?答案是Yes!

现在我们就来看如何实现。

步骤一、准备框架:

创建一个Excel文档,并将它另存为*.xlsm

Excel:获取某目录下的所有文件信息

打开这个文件,然后打开“开发工具”,方法是:文件—>选项—>自定义功能区—>开发工具—>勾选。

Excel:获取某目录下的所有文件信息

然后在开发工具中,插入控件,选“按钮”,如下图:

Excel:获取某目录下的所有文件信息

步骤二、程序设计:

在按钮上右键,编辑文字,输入“获取文件”;

在sheet标签中,右键,选择查看代码,输入以下代码:

Dim jg(), k&, tms#

Sub ListFilesFso()

sb& = InputBox(“查找类型: 所有文件=0/文件=1/文件夹=-1/所有文件夹=-2”, “Find Files”, 0)

SpFile$ = InputBox(“文件类型”, “Find Files”, “.xl”)

If SpFile Like “.*” Then SpFile = LCase(SpFile) & “*”

With Application.FileDialog(msoFileDialogFolderPicker)

If .Show Then myPath$ = .SelectedItems(1) Else Exit Sub

End With

If Right(myPath, 1) <> “” Then myPath = myPath & “”

ReDim jg(65535, 6)

jg(0, 0) = “后缀”: jg(0, 1) = IIf(sb < 0, IIf(Len(SpFile), “文件名”, “No”), “文件名”)

jg(0, 2) = “文件夹”: jg(0, 3) = “路径”: jg(0, 4) = “文件大小”: jg(0, 5) = “创建时间”

tms = Timer: k = 0: Call ListAllFso(myPath, sb, SpFile)

If sb < 0 And Len(SpFile) = 0 Then Application.StatusBar = “Get ” & k & ” Folders.”

[a1].CurrentRegion = “”: [a1].Resize(k + 1, 6) = jg: [a1].CurrentRegion.AutoFilter Field:=1

End Sub

Function ListAllFso(myPath$, Optional sb& = 0, Optional SpFile$ = “”)

Set fld = CreateObject(“Scripting.FileSystemObject”).GetFolder(myPath)

On Error Resume Next

If sb >= 0 Or Len(SpFile) Then

For Each f In fld.Files

t = False

n = InStrRev(f.Name, “.”): fnm = Left(f.Name, n – 1): x = LCase(Mid(f.Name, n))

If Err.Number Then Err.Clear

If SpFile = ” ” Then ‘Space

t = True

ElseIf SpFile Like “.*” Then

If x Like SpFile Then t = True

Else

If InStr(fnm, SpFile) Then t = True

End If

If t Then k = k + 1: jg(k, 0) = x: jg(k, 1) = “‘” & fnm: jg(k, 2) = fld.Name: jg(k, 3) = fld.Path: jg(k, 4) = FileLen(fld.Path & “\” & fnm & x): jg(k, 5) = FileDateTime(fld.Path & “\” & fnm & x)

Next

Application.StatusBar = Format(Timer – tms, “0.0s”) & ” Get ” & k & ” Files , Searching in Folder … ” & fld.Path

End If

For Each fd In fld.SubFolders

If sb < 0 And Len(SpFile) = 0 Then k = k + 1: jg(k, 0) = “fld”: jg(k, 1) = k: jg(k, 2) = fd.Name: jg(k, 3) = fld.Path: jg(k, 4) = FileLen(fld.Path & “\” & fnm & x): jg(k, 5) = FileDateTime(fld.Path & “\” & fnm & x)

If sb Mod 2 = 0 Then Call ListAllFso(fd.Path, sb, SpFile)

Next

End Function

步骤三、功能链接

在步骤一的按钮上,右键,选择“指定宏”,选择“获取文件.xlsm!Sheet1.ListFilesFso”这个程序。

Excel:获取某目录下的所有文件信息

步骤四、使用

点击获取文件的按钮,然后选择类型和后缀,就可以列出所有的文件信息了,包括文件路径、文件大小、修改时间等

Excel:获取某目录下的所有文件信息

Excel:获取某目录下的所有文件信息

还可以根据我们自己的需要,添加超链接,以便更好的管理文件。此处不再详细列出。

如果以上的无法实现,也可以联系我,直接给你excel文件试验。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/10022.html

(0)
上一篇 2023年 4月 22日 下午11:55
下一篇 2023年 4月 22日 下午11:55

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信