使用VBA,如何在不关闭所有工作簿的情况下关闭Excel工作簿?

时间:2009-09-10 14:49:18

标签: excel ms-access vba

使用Access VBA,我想打开一个XL文件,做一些东西,然后关闭它而不关闭其他打开的XL文件。

选项1:如果最后一行是“ObjXL.Application.Quit”,则会关闭所有打开的Excel文件,而不仅仅是当前文件。

选项2:如果最后一行是“ObjXL.Close”,则工作簿将关闭,但XL的特定实例保持打开状态(即没有工作簿的Excel)。

那么,如何在不关闭任何其他打开的工作簿的情况下关闭Excel工作簿?

Sub x()
    Dim ObjXL As Excel.Workbook
    Set ObjXL = GetObject("C:\Reports\Adhoc Default.xls")
    ObjXL.Application.Visible = True
    ObjXL.Windows(1).Visible = True
    ObjXL.Worksheets(1).Activate
    DoStuff()
    ObjXL.Save
    Option1/2/3?
End Sub

1 个答案:

答案 0 :(得分:4)

嘿,我在别人面前回答了我自己的问题:

Sub xx()
    Dim XLapp As New Excel.Application
    Dim ObjXL As Excel.Workbook
    Set ObjXL = XLapp.Workbooks.Open("C:\reports\adhoc default.xls")
    ObjXL.Application.Visible = True
    ObjXL.Windows(1).Visible = True
    ObjXL.Worksheets(1).Activate
    ObjXL.Save
    ObjXL.Close
    XLapp.Quit
End Sub