如何添加一个循环来通过文件夹到这个代码?

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

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 

这将遍历文件夹中的文件(path位于“B4”)。 如果有比“E1”中给出的date更新的报送者,则返回警报。

我想添加到这个循环,循环遍历范围“B4:B22”中给出的所有文件夹path,并对这些文件夹中的每个文件重复上述操作。 到目前为止,我只遇到错误…

如果我已经正确地理解了你的问题,我会简单地将所需的操作包装在一个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