Chiudere il file di Excel da Access vba

Ho creato un file xls di excel da Access vba.

Private Sub ModifyXl()

Dim XLapp As Excel.Application
Dim xlWB As Excel.Workbook
Set XLapp = New Excel.Application
Dim xlSh As Excel.Worksheet

Set xlWB = XLapp.Workbooks.Open(DskTp & "NHL Doctors.xls", , False)
Set xlSh = xlWB.Sheets("NHLDocs")

Cells.Select
Selection.Font.Name = "Trebuchet MS"
Rows("1:1").Select
Selection.Font.Bold = True
Range("A1").HorizontalAlignment = xlCenter
Columns("A:A").EntireColumn.AutoFit

xlWB.Save
xlWB.Close
XLapp.Quit
Set XLapp = Nothing

End Sub

‘Cellule.Selezionare ” non ha funzionato, ma il file esiste ora. Io non riesco a eliminarlo, perché dice che è già aperto, ma non viene visualizzato come aprire.

Ho spulciato internet cercando di trovare un codice che permetterà di chiudere il file e chiudere excel – senza successo. Aiuto!

InformationsquelleAutor | 2014-02-15

 

One Reply
  1. 3

    Il tuo codice non funziona, perchè non hai attivato il foglio (aggiungere xlSh.Activate).Ma non è il modo migliore per risolvere il vostro problema. Provare a evitare l’uso di Selezionare/Attivo di bilancio come nel codice seguente:

    Private Sub ModifyXl()
    
        Dim XLapp As Excel.Application
        Dim xlWB As Excel.Workbook
        Set XLapp = New Excel.Application
        Dim xlSh As Excel.Worksheet
        'Dim DskTp as String
    
        'DskTp = "C:\"  
        Set xlWB = XLapp.Workbooks.Open(DskTp & "NHL Doctors.xls", , False)
        Set xlSh = xlWB.Sheets("NHLDocs")
    
        With xlSh
            .Cells.Font.Name = "Trebuchet MS"
            .Range("1:1").Font.Bold = True
            .Range("A1").HorizontalAlignment = xlCenter
            .Range("A:A").EntireColumn.AutoFit
        End With
    
        xlWB.Close True
        Set xlWB = Nothing
        XLapp.Quit
        Set XLapp = Nothing
    
    End Sub

    BTW, non riesco a trovare dove è inizializzato DskTp variabile (è una variabile globale?). Ho aggiunto inizializzazione come commenti (nel caso non si utilizza la variabile globale – il commento thouse linee).

    • Grazie. Ora funziona bene. Sì DskTp è globale – hanno utilizzato per secoli e funziona a meraviglia.

Lascia un commento