循环浏览文件夹和运行代码不总是工作

我正在使用以下代码来遍历目录中的所有文件夹并执行某些任务。 在这种情况下,任务是(i)刷新活动工作簿和(ii)删除所有工作簿连接。

Sub LoopThroughFolders() Application.DisplayAlerts = False Dim FSO As Scripting.FileSystemObject Dim FF As Scripting.Folder Set FSO = New Scripting.FileSystemObject Set FF = FSO.GetFolder("C:\...\") 'Change directory as appropriate PerformTasks FF Application.DisplayAlerts = True End Sub Sub PerformTasks(FF As Scripting.Folder) Dim F As Scripting.File Dim SubF As Scripting.Folder Dim WB As Workbook For Each F In FF.Files Set WB = Workbooks.Open(F.Path) 'CODE GOES HERE WB.Close SaveChanges:=True Debug.Print F.Name Next F For Each SubF In FF.SubFolders PerformTasks SubF Next SubF End Sub 

如果我更换相应的行

 ActiveWorkbook.RefreshAll 

或等效的过程,根文件夹中的所有工作簿都按预期刷新。 但是,当我尝试的代码

 Do While ActiveWorkbook.Connections.Count > 0 ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete Loop 

从工作簿中删除所有的连接,程序会遍历所有的文件,但没有任何反应,即应该被删除的连接保留在工作簿中。 值得注意的是,如果从工作簿本身启动,该代码按预期方式执行,从而删除调用工作簿中的连接。

为什么不通过文件夹循环删除连接工作的代码? 任何想法我做错了什么?