2009-09-10 7 views
0

En utilisant Access VBA, je veux ouvrir un fichier XL, faire des choses, puis le fermer sans fermer d'autres fichiers XL qui sont ouverts.Avec VBA, comment fermer un classeur Excel sans fermer tous les classeurs?

Option 1: Si la dernière ligne est "ObjXL.Application.Quit", cela ferme TOUS les fichiers Excel ouverts, pas seulement le fichier en cours.

Option 2: Si la dernière ligne est "ObjXL.Close", le classeur se ferme, mais cette instance particulière de XL reste ouverte (c'est-à-dire Excel sans classeur). Donc, comment fermer un classeur Excel sans fermer les autres classeurs ouverts?

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 

Répondre

4

Heh, ai-je répondu à ma propre question avant tout le monde:

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 
Questions connexes