1
Ich erstelle eine Excel-Tabelle aus MS Access mit VBA.Excel VBA nicht korrekt auf Bereich Objekt
Mein Code ist:
Private Sub btn_Excel_NG_Click()
Dim rst As DAO.Recordset
Dim strSQL As String
Dim qdfnew As DAO.QueryDef
Dim RecordCount As String
Dim xl As Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
' ***********************
' ** CREATE QUERY
' ***********************
strSQL = "SELECT Event, DateStart, Suburb, FirstName, Name, Home, DOB, FROM SAT INNER JOIN tbl_records_emailed ON Event = Event WHERE (tbl_records_emailed.NGEmailed Is Null);"
' ***********************
' ** EXPORT TO EXCEL FILE
' ***********************
Set qdfnew = CurrentDb.CreateQueryDef("excelQuery", strSQL)
FileName = "S:\Hub\Processed\Email\" & Format(Now, "ddmmyyyy_hhmm") & ".xlsx"
DoCmd.TransferSpreadsheet acExport, 10, "excelQuery", FileName, True
DoCmd.Close acQuery, "excelQuery"
CurrentDb.QueryDefs.Delete qdfnew.Name
' ********************
' ** FORMAT EXCEL FILE
' ********************
Set xl = New Excel.Application
Set wb = xl.Workbooks.Open(FileName)
Set ws = wb.Worksheets(qdfnew.Name)
With wb.Sheets(qdfnew.Name)
.rows("1:1").Font.Bold = True
.Columns("A:Z").AutoFit
End With
Dim tbl As ListObject
Dim rng As Range
wb.Worksheets(qdfnew.Name).Activate
Set rng = ws.Range(Range("A1"), Range("A1").SpecialCells(xlLastCell))
Set tbl = ws.ListObjects.Add(xlSrcRange, rng, , xlYes)
tbl.TableStyle = "TableStylemedium2"
Set tbl = Nothing
wb.Save
wb.Close
Set wb = Nothing
xl.Quit
Set xl = Nothing
End Sub
Die Linie
Set rng = ws.Range(Range("A1"), Range("A1").SpecialCells(xlLastCell))
verursacht den Fehler:
Laufzeitfehler '1004': Methode 'Range' des Objekts ‚_Global 'fehlgeschlagen
Ich verstehe, dass dies ist, weil ich nicht vollständig qualifiziert habe Verweis auf welches Blatt der Bereich ist - ich dachte, einschließlich 'ws' hätte es vollständig qualifiziert?
'Set rng = ws.Range (ws.Range (" A1 "), ws.Range (" A1 "). SpecialCells (xlLastCell))' –