2017-09-01 73 views
0
Public Sub Reopen() 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
Workbooks.Open "K:\notarealpath\Testamundo.xlsm" 

End Sub 

我需要通過關閉並重新打開它來刷新工作簿,這似乎工作,因爲我將它分配給一個按鈕,並且單擊它時詢問我是否確定要重新打開這本書很好。這個VBA爲什麼崩潰excel? (重新打開工作表)

有時它可以工作一次,然後第二次完成崩潰Excel和回到VBA屏幕時,它抱怨它崩潰後內存不足。

+2

是您嘗試關閉並重新打開的工作簿的外部宏嗎?另外,如果在打開工作簿之前打開工作簿,也是如此。我無法在上面的代碼中看到你這樣做。當您嘗試打開已打開的工作簿時,它可能會崩潰 – Tom

+1

另外,定義「Refresh」是什麼意思?有許多選項可以重新計算或重新提取數據源或其他可能更好的解決方案。 –

+0

ThisWorbook.Open下有什麼被稱爲? –

回答

0

您是否嘗試過使用關閉,延遲,然後在同一個宏中打開?確保它保存在工作簿以外的工作簿之外(可能是一個快速按鈕,引用保存在XLSTART中的宏)。

Workbooks("Testamundo.xlsm").Close SaveChanges:=False 
Application.Wait Now + TimeValue("00:00:05") 
Workbooks.Open "K:\notarealpath\Testamundo.xlsm" 
+0

這只是關閉工作簿,不會重新打開它。 之後只是一個空白的屏幕。 – Steve101

+0

@ Steve101我剛剛使用本地驅動器和文件對其進行了測試,其中宏已保存爲我的XLSTART文件夾中的.xla,並且它正在爲我工​​作。我正在使用Excel 2016,但這不應該有所作爲。有兩件事要檢查:你的系統時鐘正在更新(時間與現在是系統時鐘一樣),並且你使用的路徑是正確的。 – Cyril

+0

它在雲端會話,所以我知道一切都是最新的和正確的,而文件夾路徑是正確的,因爲就像我說有時它確實工作,但只有一次。 另外我在2013年。 – Steve101