利用VBA获取指定文件类型的详细信息

VBAMatrix 2024-11-02 18:20:43
引言

获取指定文件类型的详细信息,可以帮助我们挖掘文件背后隐藏的丰富细节。然而,通过手动查询获取的文件属性往往十分有限;同时,如果要统计多个文件的详细信息,逐个文件进行手动查看属性,不仅操作繁琐,而且容易出错。

为了实现批量自动化处理,我们可以利用VBA。这里以统计某个文件夹下所有xlsm文件类型的详细信息为例,分享实现思路和相关的VBA代码。

统计所有xlsm文件详细信息

实现思路

1.弹出文件对话框,选择一个文件夹;(FileDialog对象)

2.创建新工作表,用于统计所有xlsm的详细信息;(Sheets.Add方法)

3.遍历该文件夹下的所有xlsm类型的文件;(Dir函数)

4.获取文件各个属性的名称,写入新工作表的A列;并分别获取对应的属性值,写入B,C,D....列。(Shell应用程序对象)

VBA代码

Sub获取各种文件详细信息()

With Application.FileDialog(msoFileDialogFolderPicker)

.Title = "请选择一个文件夹路径"

If .Show Then

Dim pathSelected As String

pathSelected = .SelectedItems(1)

Else

Exit Sub

End If

End With

Dim sht As Worksheet

Set sht = ActiveWorkbook.Sheets.Add(Before:=ActiveWorkbook.Sheets(1))

sht.Name = "xlsm文件的详细信息表"

'获取该文件夹下所有xlsm格式的文件名

Dim fn As String

fn = Dir(pathSelected & "\*.xlsm")

Dim shell As Object

Set shell = CreateObject("Shell.Application")

Dim fnColumn As Integer

fnColumn = 2

Do While fn <> ""

Cells(1, fnColumn) = fn

folder = pathSelected

Dim sFolder As Object, sFn As Object

Set sFolder = shell.Namespace(folder)

Set sFn = sFolder.ParseName(fn)

Dim i As Integer

For i = 1 To 500

Cells(i + 1, 1) =  sFolder.getdetailsof(, i)

Cells(i + 1, fnColumn) =  sFolder.getdetailsof(sFn, i)

Next

fnColumn = fnColumn + 1

fn = Dir

Loop

End Sub

推荐阅读

利用VBA在Excel批量插入图片批注

利用VBA将多个单元格转为复选框

利用Excel函数建立动态的工作表目录

手把手教你实现Excel聚光灯功能

Dir函数在VBA中的重要性及基本用法

0 阅读:2