文件循环宏在第一次成功后停止

时间:2014-10-10 20:50:15

标签: excel vba loops if-statement

我希望有人可以帮我处理我的宏。这是相对基础的,但我似乎无法弄清楚为什么它不会继续循环。

宏应查看所有TXT文件的set文件夹。过去一周内修改日期的文件应表明成功并继续执行其他步骤。

我遇到的问题是,过去一周修改过的第一个文件触发了下一步,但宏结束后却没有继续查找其他最近修改过的文件。 < / p>

以下示例简化为打开msgbox,但完整宏会为每个TXT文件运行其他进程。

如果有人可以提供一些指导,我们将不胜感激。

Sub OpenAllFiles()
    Dim MyFile As Variant
    Dim MyFolder As String
    Dim FileCount As Integer

    MyFolder = "C:\Input Files\"
    MyFile = Dir(MyFolder)

    Do While (MyFile <> "")
        If Format(FileDateTime(MyFolder & MyFile), "YYYYMMDD") > Format(Now - 6, "YYYYMMDD") Then    
            MsgBox ("Recent File Found.  " & MyFile & " modified " & FileDateTime(MyFolder & MyFile))
            Exit Sub   
        End If
        MyFile = Dir
    Loop
End Sub

2 个答案:

答案 0 :(得分:1)

您可以注释掉Exit Sub或将其删除。

Sub OpenAllFiles()
    Dim MyFile As Variant
    Dim MyFolder As String
    Dim FileCount As Integer

    MyFolder = "C:\Input Files\"
    MyFile = Dir(MyFolder)

    Do While (MyFile <> "")
        If Format(FileDateTime(MyFolder & MyFile), "YYYYMMDD") > Format(Now - 6, "YYYYMMDD")     Then    
            MsgBox ("Recent File Found.  " & MyFile & " modified " & FileDateTime(MyFolder & MyFile))
            'Exit Sub   
        End If
        MyFile = Dir
    Loop
End Sub

答案 1 :(得分:0)

从If

中删除“Exit Sub”