excel vba重新打开excel文件而不保存

时间:2014-01-03 09:34:17

标签: excel vba excel-vba

我有以下代码,它将重新打开当前的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,但没有重新打开文件,任何建议?很抱歉,如果这个问题对你来说很愚蠢。

3 个答案:

答案 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。