刷新几个Excel电子表格的外部数据?

时间:2014-07-21 13:08:07

标签: excel vbscript

我从这里的用户那里得到了这个代码,但我不确定我是否被允许发布他们的问题,因为我在问另一个问题的代码已发布...抱歉我是新的......

这是一个问题:

如何使用VBScript有效刷新多个Excel电子表格的外部数据?

这是代码:

Sub RefreshAllExcelInFolder()
Dim fso
Dim ObjFolder
Dim ObjFiles
Dim ObjFile
Dim objExcel

'Creating File System Object
Set fso = CreateObject("Scripting.FileSystemObject")
'Getting the Folder Object
Set ObjFolder = fso.GetFolder("S:\Finance & Performance\IM&T\Information\Surgicaldir\18     Weeks\18wksPTL\validation")

'Getting the list of Files
Set ObjFiles = ObjFolder.Files
    'On Error Resume Next
    For Each ObjFile In ObjFiles
        If LCase(Right(ObjFile.Name, 5)) = ".xlsx" Or LCase(Right(ObjFile.Name, 4))     = ".xls" Then
            Workbooks.Open(ObjFile).Activate
            RefreshAllData
        End If
    Next
End Sub

Sub RefreshAllData()
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
ActiveWorkbook.Close
MsgBox ("Going back In")
End Sub

我收到这条消息后,按OK就完美了 - 但是有什么方法可以不收到这条消息吗?此操作将取消挂起的刷新数据命令。继续? 谢谢 利兹

2 个答案:

答案 0 :(得分:1)

RefreshAll以异步方式运行,因此您的Close命令可能会在仍在刷新时关闭工作簿。尝试一些解决方案herehere

答案 1 :(得分:0)

转到每个Connections,选择“属性”,然后取消选择“后台刷新”选项。

我认为禁用此功能会强制您的脚本等到刷新所有连接后再继续。