Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

[VBA] Excel-Prozess bleibt dauerhaft aktiv obwohl

[VBA] Excel-Prozess bleibt dauerhaft aktiv obwohl
23.07.2015 12:20:45
Friedrich
Hallo,
habe folgenden VBA-Code mit dem eine Access-Datenbank in Excel exportiert wird. anschließend werden einige Formatierungen durchgeführt. Das funktioniert soweit alles, außer, dass der Excel-Prozess am Ende nicht ordnungsgemäß geschlossen wird.
(er ist weiterhin im Task-Manager sichtbar, verschwindet erst, sobald ich auch Access schließe)
Dadurch kann ich das Script nicht mehrfach ausführen, Fehlermeldung: Laufzeitfehler 1004: Die Methode "Rows" für das Objekt "_Global" ist fehlgeschlagen. (entsprechende Zeile im Code markiert)
Weißt jemand warum die Excel-Datei nicht ordnungsgemäß geschlossen wird? Habe ich evtl. eine Variable nicht richtig deklariert bzw falsch verwendet?
Viele Grüße,
Friedrich
Public Sub Select_in_Excel_anzeigen()
Dim sDatei As String
sDatei = "C:\Users\friedrich\Desktop\Export_Test2.xlsx"
If Dir(sDatei) "" Then
Kill sDatei
End If
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "vrt_master", "C:\Users\friedrich\Desktop\Export_Test2.xlsx", True, ""
Dim xlApp As Excel.Application
Dim xlBook As Workbook
Dim xlSheet As Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Users\friedrich\Desktop\Export_Test2.xlsx")
Set xlSheet = xlBook.Worksheets(1)
With xlSheet
Dim LastColumn As Long
Dim LastRow As Long
LastColumn = .Cells.Find(What:="*", After:=.Range("A1"), _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Hier tritt der Laufzeitfehler auf (LastRow = ...)
Range(Cells(1, 1), Cells(LastRow, LastColumn)).Select
Range(Cells(1, 1), Cells(LastRow, LastColumn)).Activate
ActiveSheet.ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(LastRow, LastColumn)), , xlYes).Name = _
"Tabelle1"
Range(Cells(1, 1), Cells(LastRow, LastColumn)).Select
ActiveSheet.ListObjects("Tabelle1").TableStyle = "TableStyleLight2"
Columns(LastColumn).Select
Selection.Offset(0, 1).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.EntireColumn.Hidden = True
With xlSheet.PageSetup
.LeftHeader = "Vertriebsreporting"
.CenterHeader = "&A"
.RightHeader = "&D"
.LeftFooter = "&P/&N"
.PrintArea = Range(Cells(1, 1), Cells(LastRow, 12)).Address
.Orientation = xlLandscape
End With
Rows(LastRow).Select
Selection.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Hidden = True
End With
xlBook.Save
xlApp.Application.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Punkt vergessen..
23.07.2015 12:43:48
Raphael
Hallo Friedrich,
du hast den Punkt vor Cells vergessen...
und das andere kann daran liegen, dass die Excel geschlossen wird bevor die Variablen geleert werden. Versuchs mal in der Reihenfolge

Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing
xlBook.Save
xlApp.Application.Quit
Gruess
Raphael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige