我一直遇到有问题的工作表更新的问题,然后在我关闭并重新打开图书之前不会反映这些更改。这不是什么大不了的事,我只想简单地将其简化为单击按钮。
我被告知这是不可能的,因为关闭工作簿会立即停止执行代码,因此您无法重新打开该书。但是既然如此,我已经了解了PERSONAL.xlsb,并且因为它是一个持久性工作簿,它可以处理代码执行以保存,关闭和重新打开工作簿。
基本上,这是我在主工作表中得到的内容:
Public Sub Refresh()
ActiveWorkbook.Save
Application.Run "PERSONAL.xlsb!Module1.RefreshCurrentSheet",ThisWorkbook.Name,_
ThisWorkbook.FullName
End Sub
然后调用personal.xlsb宏" Refreshcurrentsheet":
Private Sub RefreshCurrentSheet(ByVal sheetname, Optional ByVal sheetfullname = 0)
Workbooks(sheetname).Close
MsgBox "So far so good!" 'I never see this box
Workbooks(sheetfullname).Open
MsgBox "No errors here..." 'I never see this box
End Sub
这会成功关闭相关工作簿,但代码执行会停止,并且不会重新打开。有没有解决的办法?某些方法在持久工作表中运行第二个宏而不停止代码执行?
答案 0 :(得分:1)
我们可以使用其中的代码重新打开工作簿(不需要使用其他工作簿):
Sub test()
Application.DisplayAlerts = False
Workbooks.Open ThisWorkbook.FullName
Application.DisplayAlerts = True
End Sub