不停止vbaclosures工作簿?

我一直遇到问题的工作表被更新的问题,然后不反映更改,直到我closures并重新打开书。 这不是什么大不了的事情,我只是想简单点击一下button。

我被告知这是不可能的,因为closures工作簿会立即停止执行代码,所以你不能重新打开这本书。 但是,由于我已经了解了PERSONAL.xlsb,并且认为它是一个持久的工作簿,它可以处理代码执行以保存,closures并重新打开工作簿。

基本上,这是我在主要工作表中得到的:

Public Sub Refresh() ActiveWorkbook.Save Application.Run "PERSONAL.xlsb!Module1.RefreshCurrentSheet",ThisWorkbook.Name,_ ThisWorkbook.FullName End Sub 

然后调用personal.xlsbmacros“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 

这成功地closures了有问题的工作簿,但代码执行停止并且不会重新打开。 有没有解决的办法? 在持久性表单中运行第二个macros而不停止代码执行的一些方法?

我们可以使用里面的代码重新打开工作簿(不需要使用其他工作簿):

 Sub test() Application.DisplayAlerts = False Workbooks.Open ThisWorkbook.FullName Application.DisplayAlerts = True End Sub