2014-10-10 57 views
0

我希望有人可以帮助我与我的宏。这是相对基本的,但我似乎无法弄清楚为什么它不会继续循环。文件循环宏停止后第一次成功

宏应该通过为所有TXT文件一组文件夹。那些在过去一周内修改日期的文件应该表示成功并继续执行其他步骤。

我遇到的问题是,过去一周修改过的第一个文件触发下一步,但宏结束并且不继续查找其他最近修改的文件。

下面的例子被简化以打开一个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 
+3

从If If – 2014-10-10 20:58:33

+0

中删除“Exit Sub”,我是一个屁股。感谢您指出了这一点。 – JMCC 2014-10-10 21:29:57

+0

没问题。我知道它的感觉如何;) – 2014-10-10 21:32:48

回答

0

从如果

1

去掉“退出小组”要么你注释掉退出小组或删除它。

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