【发布时间】:2014-10-10 20:50:15
【问题描述】:
我希望有人可以帮助我处理我的宏。这是相对基本的,但我似乎无法弄清楚为什么它不会继续循环。
宏应查看所有 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
【问题讨论】:
-
从 If 中删除“Exit Sub”
-
好吧,我是个混蛋。感谢您指出这一点。
-
没问题。我知道那是什么感觉;)
-
@tkacprow 您可能希望发表您的评论作为答案,因为它是有效的。
标签: excel vba loops if-statement