【发布时间】:2015-03-02 15:26:27
【问题描述】:
在我的文件夹中,我有不同类型的文件:
.mp4 .wav .out .outreview
我在 excel 中使用 VBA 代码根据文件扩展名列出所有文件。如屏幕截图所示:
为此,我使用以下代码四次,每次替换文件扩展名并调整列引用:
这是第一列,视频文件,.mp4 的示例代码:
Sub getfilelistfromfolder()
Dim varDirectory As Variant
Dim flag As Boolean
Dim i As Long
Dim strDirectory As String
Dim Desired As String
strDirectory = Application.ActiveWorkbook.Path & "\"
i = 1
flag = True
varDirectory = Dir("C:\Users\Folder\*.mp4", vbNormal)
Range("A5:A100").Select
Selection.ClearContents
While flag = True
If varDirectory = "" Then
flag = False
Else
Cells(i + 4, 1) = varDirectory
varDirectory = Dir
i = i + 1
End If
Wend
End Sub
我对 .wav 和 .outreview 文件重复一遍。
但是我将以下代码用于 .out 文件,因为否则它会提取所有 .out 和 . .out 列中的 outreview 文件,这是我不想要的。
Sub getfilelistfromfolder()
Dim varDirectory As Variant
Dim flag As Boolean
Dim i As Long
Dim strDirectory As String
Dim Desired As String
Desired = ".out"
strDirectory = Application.ActiveWorkbook.Path & "\"
i = 1
flag = True
varDirectory = Dir("C:\Users\Folder\", vbNormal)
While flag = True
If varDirectory = "" Then
flag = False
Else
If Right(varDirectory, 4) = Desired Then
Cells(i + 4, 3) = varDirectory
i = i + 1
End If
varDirectory = Dir
End If
Wend
End Sub
问题:如何仅提取 .out 文件的最后修改日期,并将它们放在 列中的相应单元格中D?
我怎样才能将所有这些代码组合成一个代码,这样我就不会为每个文件扩展名重复这个?
谢谢
更新:
此更新是在 Jeanno 提供的答案之后进行的:
这回答了我的问题。这是 Jeanno 的修正版代码。
Sub getfilelistfromfolder()
Dim varDirectory As Variant
Dim flag As Boolean
Dim i As Long
Dim strDirectory As String
Dim Desired As String
strDirectory = Application.ActiveWorkbook.Path & "\"
i = 1
flag = True
varDirectory = Dir("C:\Users\folder\*", vbNormal)
Range("A5:E100").clear
While flag = True
If varDirectory = "" Then
flag = False
Else
If varDirectory Like "*.mp4" Then
Cells(i + 4, 1) = varDirectory
End If
If varDirectory Like "*.wav" Then
Cells(i + 4, 2) = varDirectory
i = i + 1
End If
If varDirectory Like "*.outreview" Then
Cells(i + 4, 5) = varDirectory
End If
If varDirectory Like "*.out" Then
Cells(i + 4, 4) = varDirectory
Cells(i + 4, 3) = FileDateTime("C:\Users\folder\" & varDirectory)
End If
varDirectory = Dir
End If
Wend
End Sub
【问题讨论】: