2009-09-10 185 views
0

使用Access VBA,我想打开一个XL文件,做些东西,然后关闭它,而不关闭其他打开的XL文件。选项1:如果最后一行是“ObjXL.Application.Quit”,则关闭所有打开的Excel文件,而不仅仅是当前文件。选项2:如果最后一行是“ObjXL.Close”,则工作簿关闭,但XL的特定实例保持打开状态(即没有工作簿的Excel)。使用VBA时,如何在不关闭所有工作簿的情况下关闭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 

回答

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 
相关问题