代码之家  ›  专栏  ›  技术社区  ›  PowerUser

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

  •  0
  • PowerUser  · 技术社区  · 15 年前

    使用AccessVBA,我想打开一个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 回复  |  直到 15 年前
        1
  •  4
  •   PowerUser    15 年前

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

    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