excel vba列表文件创建日期与周数匹配的目录?

时间:2016-12-15 16:36:23

标签: excel vba

我使用以下代码列出目录中的所有文件:

Sub Example1()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim i As Integer

'Create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Get the folder object
Set objFolder = objFSO.GetFolder("G:\STOCK\(3) Promotions\Allocations\" & Range("N7").Value & "\" & Range("B7").Value & "\WK " & Range("H7").Value & "\")
i = 1
'loops through each file in the directory and prints their names and path
For Each objFile In objFolder.Files
'print file PG
    Cells(i + 12, 1) = Range("N7").Value
    'print file Month
    Cells(i + 12, 5) = Range("H7").Value

    'print file Year
    Cells(i + 12, 9) = Range("B7").Value

    'print file name
    Cells(i + 12, 13) = objFile.Name

    'print file path
    Cells(i + 12, 18) = "=hyperlink(""" & objFile.Path & """)"

    i = i + 1
Next objFile
End Sub

这很有效。有没有办法可以修改这个脚本,只列出这个目录中文件创建日期与单元格中的周数匹配的文件?

例如,如果我的单元格A1的值为50 - 表示第50周,那么我希望列出所有与该周数匹配的日期的文件。

因此,如果我的文件夹目录包含以下文件:

1.pdf (Created 15/12/2016)
2.pdf (Created 01/12/2016)

然后,我列表中显示的唯一文件将是文件1.pdf,因为此日期属于第50周。

有人可以告诉我怎么做吗?谢谢

1 个答案:

答案 0 :(得分:0)

这是你在找什么?

For Each objFile In objFolder.Files
    If Application.WeekNum(objFile.DateCreated) = Range("A1").Value Then
        Debug.Print objFile.Name
        ' ... do the job
    End If
Next