如何添加循环以通过文件夹到此代码?

时间:2015-06-23 14:19:26

标签: excel vba

通过查看其他人的代码并对其进行修改,我设法拼凑了这段代码:

Sub LookForNew()
Dim n As String, msg As String, d As Date
msg = ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set fils = fso.GetFolder(Range("B4")).Files
For Each fil In fils
    n = fil.Name
    d = fil.DateCreated
    If d >= Range("E1") Then
        msg = msg & n & vbTab & d & vbCrLf
        Range("C4") = Range("B1")
    End If
Next fil
If msg = "" Then
    MsgBox "No new files"
    Range("C4") = Range("B1")
Else
    MsgBox msg
End If
Set fso = Nothing
End Sub

循环浏览文件夹中的文件(路径位于" B4")。如果存在比" E1"中给出的日期更新的文件管理器,则它会返回警报。

我想要添加的是一个循环,循环遍历范围" B4:B22"中给出的所有文件夹路径。并对这些文件夹中的每个文件重复上述操作。到目前为止,我只遇到了错误......

1 个答案:

答案 0 :(得分:1)

如果我已正确理解你的问题,我只需将所需的操作包装在Do Until中,每次迭代中行加1。

显然,如果范围" B4:B22"然后,这可以变得更聪明。

Private Sub LookForNew()  
Dim n As String, msg As String, d As Date
msg = ""
rownum = 3
Set fso = CreateObject("Scripting.FileSystemObject")

Do Until rownum = 24
rownum = rownum + 1
Set fils = fso.GetFolder(Range("B" & rownum)).Files
    For Each fil In fils
        n = fil.Name
        d = fil.DateCreated
        If d >= Range("E1") Then
            msg = msg & n & vbTab & d & vbCrLf
            Range("C4") = Range("B1")
        End If
    Next fil

    If msg = "" Then
        MsgBox "No new files"
        Range("C4") = Range("B1")
    Else
        MsgBox (msg)
    End If

    'Set fso = Nothing
Loop

End Sub