打开文档时需要帮助重启Excel

时间:2014-08-22 13:43:37

标签: excel vba excel-vba

我编写了这段代码,在打开Excel时自动运行宏。此宏将创建一个出现的消息框。按" OK"在此消息框上Excel将重新启动。在这一部分我遇到了困难,因为我只是设法关闭工作簿而不是重新打开它。

Sub auto_open()
Dim x As String


With CheckTekla
If .GetConnectionStatus = False Then
Call Shell("C:\Program Files\Tekla Structures\19.1\nt\bin\TeklaStructures.exe")
MsgBox "TEXT"
x = ActiveWorkbook.Name
Workbooks(x).Close False
Workbooks.Open x

Else
'do nothing
End If
End With

End Sub

应该重启Excel的部分是:

Dim x As String
x = ActiveWorkbook.Name
Workbooks(x).Close False
Workbooks.Open x

感谢任何帮助。

此致

2 个答案:

答案 0 :(得分:0)

无法从VBA重新启动Excel。

你可以运行:

Application.Quit

但是,这将关闭Excel,并且不会重新启动它,因为宏将在Excel关闭后停止运行。因此,您必须在关闭后手动启动Excel。

答案 1 :(得分:0)

如上所述,从excel中的vba重启excel是不可能的(你可以调用一个关闭并打开excel的外部vbs脚本) 但是,您澄清了要关闭并重新打开工作簿,尝试设置变量并关闭它。将名称捕获为FullName(带路径)并再次打开它,没有路径,它将无法工作。

Sub auto_open()
Dim x As String
Dim wb as workbook

With CheckTekla
If .GetConnectionStatus = False Then
Call Shell("C:\Program Files\Tekla Structures\19.1\nt\bin\TeklaStructures.exe")
MsgBox "TEXT"

Set wb = ActiveWorkbook
x = wb.FullName
wb.Close False
Set wb = Workbooks.Open(x)
Else
'do nothing
End If
End With

End Sub