我有以下代码,它将重新打开当前的excel文件。
Sub CloseMe()
Application.OnTime Now + TimeValue("00:00:02"), "OpenMe"
ThisWorkbook.Close False
End Sub
Sub OpenMe()
MsgBox "The file is reopened"
End Sub
我试图让它适用于activeworkbook,所以我改变了
ThisWorkbook.Close False
到
ActiveWorkbook.Close False
但它最终关闭了activeworkbook,但没有重新打开文件,任何建议?很抱歉,如果这个问题对你来说很愚蠢。
答案 0 :(得分:3)
试试这个:
Sub ReOpen()
Application.DisplayAlerts = False
Workbooks.Open ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
Application.DisplayAlerts = True
End Sub
答案 1 :(得分:0)
我认为有一个思想错误......当工作簿关闭时,包含的VBA代码也会关闭,因此2秒后没有代码可以执行,并且没有任何对象可以作为任何代码的主题
这仅在关闭/重新打开逻辑位于要关闭/重新打开的工作表之外时才有效,更具体地说,驻留在工作簿中,该工作簿在关闭/重新打开要重新打开的工作表之间始终保持打开状态
答案 2 :(得分:0)
我喜欢这个,我改编自"How To Close And Reopen Active Workbook?"
Sub ReOpen()
ActiveWorkbook.ChangeFileAccess xlReadOnly, , False
Application.Wait Now + TimeValue("00:00:01")
ActiveWorkbook.ChangeFileAccess xlReadWrite, , True
End Sub
对我来说,这似乎更优雅,如果有未保存的更改,则会发出警告。原始版本使用ThisWorkbook
,而我使用ActiveWorkbook
就像@Taosique。