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