如何使用vba代码关闭Visual Basic应用程序

时间:2014-03-11 06:57:38

标签: excel-vba vba excel

有没有办法只关闭Visual Basic应用程序?我尝试了将关闭Visual Basic应用程序和Excel的Apllication.Quit。

如何仅关闭Visual Basic应用程序?

以下是我的代码。

Private Sub UserForm_Activate()
Application.Quit
End Sub

由于

3 个答案:

答案 0 :(得分:0)

当您打开excel文件时,VBA窗口未打开,因此您的用户无法看到您的代码,除非他们打开它。所以我真的不明白你为什么会遇到这个问题。

无论如何,您可以运行此代码来关闭它:

ThisWorkbook.VBProject.VBE.MainWindow.Visible = False

您可以在此找到其他解决方案:
http://www.mrexcel.com/forum/excel-questions/28529-close-visual-basic-editor-window.html

根据您的安全设置,您可能会收到一条错误,您可以在此处阅读有关如何解决的错误:
http://support.microsoft.com/kb/282830

答案 1 :(得分:0)

如果您只想让表格离开,请使用Me.Hide

答案 2 :(得分:0)

我知道这是一个老帖子,但这可能会对将来有所帮助。

所以我偶然发现了这个寻找所提供的答案并且它正常工作。但是在我的情况下,我有一个sub,以编程方式将代码添加到工作簿中打开的新工作表。这个问题是用户看到VBA应用程序(因为它是可见的)混淆了他们,因此我也在寻找一种方法来关闭VBA代码窗口。添加Nybee提供的上述代码可以防止这个问题。

Dim xPro As VBIDE.VBProject
Dim xCom As VBIDE.VBComponent
Dim xMod As VBIDE.CodeModule
Dim xLine As Long

Set xPro = ThisWorkbook.VBProject
Set xCom = xPro.VBComponents(ActiveSheet.CodeName)
Set xMod = xCom.CodeModule

With xMod
    xLine = .CreateEventProc("Change", "Worksheet")
    xLine = xLine + 1
    .InsertLines xLine, "Sheet_Evaluator Me"
End With

Build_Score_Card
xMod.VBE.ActiveWindow.Close
xCom.VBE.ActiveWindow.Close
xPro.VBE.ActiveWindow.Close

Set xMod = Nothing
Set xCom = Nothing
Set xPro = Nothing

ThisWorkbook.VBProject.VBE.MainWindow.Visible = False