获取指定文件类型的详细信息,可以帮助我们挖掘文件背后隐藏的丰富细节。然而,通过手动查询获取的文件属性往往十分有限;同时,如果要统计多个文件的详细信息,逐个文件进行手动查看属性,不仅操作繁琐,而且容易出错。
为了实现批量自动化处理,我们可以利用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中的重要性及基本用法