2017-09-01 80 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