我希望在 Excel 2010 中使用 VBA 返回同一文件夹中或不同文件夹中某些文件的文件大小。
问问题
61255 次
2 回答
31
有一个非常好用且简单的 VBA 函数,目前还没有提到,FileLen:
FileLen("C:\Temp\test file.xls")
它以字节为单位返回文件的大小。
结合遍历目录中的文件,可以实现您最初想要的(获取文件夹中文件的大小)。
于 2015-03-30T03:07:56.353 回答
14
这里如何在 Excel 单元格中使用它:
=GetDirOrFileSize("C:\Users\xxx\Playground\","filename.xxx")
如果您有德语 Windows,则:
=GetDirOrFileSize("C:\Users\xxx\Playground\";"filename.xxx")
这是 VBA 模块的功能:(只需启用开发人员工具,然后将其复制并粘贴到新模块中)
Function GetDirOrFileSize(strFolder As String, Optional strFile As Variant) As Long
'Call Sequence: GetDirOrFileSize("drive\path"[,"filename.ext"])
Dim lngFSize As Long, lngDSize As Long
Dim oFO As Object
Dim oFD As Object
Dim OFS As Object
lngFSize = 0
Set OFS = CreateObject("Scripting.FileSystemObject")
If strFolder = "" Then strFolder = ActiveWorkbook.path
If Right(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
'Thanks to Jean-Francois Corbett, you can use also OFS.BuildPath(strFolder, strFile)
If OFS.FolderExists(strFolder) Then
If Not IsMissing(strFile) Then
If OFS.FileExists(strFolder & strFile) Then
Set oFO = OFS.Getfile(strFolder & strFile)
GetDirOrFileSize = oFO.Size
End If
Else
Set oFD = OFS.GetFolder(strFolder)
GetDirOrFileSize = oFD.Size
End If
End If
End Function '*** GetDirOrFileSize ***
于 2013-04-09T09:03:02.090 回答