2014-01-09 40 views
0

當我運行以下dir循環時,即使代碼說要更新它們,也會打開提示以更新鏈接的文件。有誰知道爲什麼我仍然提示更新?我有一種感覺,認爲我的目錄是共享點。使用Dir循環的Excel VBA UpdateLinks

Sub OpenProjectFiles() 

Dim sFile As String 
Dim sPath As String 

sPath = Application.ActiveWorkbook.Path 
sPath = Replace(sPath, "/", "\") 
sPath = Replace(sPath, "http:", "") 

sFile = Dir(sPath & "\FY*.xls")  

Do While Len(sFile) > 0 
    On Error Resume Next 
    Workbooks.CheckOut FileName:=sPath & "\" & sFile 
    Workbooks.Open FileName:=sPath & "\" & sFile, UpdateLinks:=3 
    sFile = Dir 
Loop 

End Sub 
+0

注意:如果有人看到一個更有效的方式來做我想做的事情,我也會喜歡這個輸入。鑑於我從共享點驅動器拉出,這已經需要一段時間才能運行。 – blasibr

回答

0

其實我想出了我自己的問題,下面解釋。 但是如果有更好或更快的方式循環並打開這些文件,我很樂意瞭解它。目前,查找,檢出,打開和更新鏈接大約需要6秒 - 更新鏈接不需要很長時間,因爲它通常不會更新很多信息。由於這個例程通常會打開大約10-15個文件,所以完成大約需要2分鐘。

答:我意識到代碼實際上是更新鏈接,但由於某種原因提示仍然彈出。所以我只是禁用提示:

Application.AskToUpdateLinks = False