好的,所以我有一個帶有數據的Excel文件。此數據來自已從Access數據庫手動複製的查詢。由於每天都必須完成,所以我們希望自動完成。訪問插入在Excel下面打開的查詢在現有數據下面
我已經在Access數據庫內部有VBA代碼,它打開查詢並將它寫入到右表的Excel文件中。 然而,它的工作原理當我把一個靜態的範圍插入所以它實際上只是覆蓋我說的範圍:
Dim rst As DAO.Recordset
Dim ApXL As Object
Dim xlWBk As Object
Dim xlWSh As Object
Set rst = CurrentDb.OpenRecordset("Query name")
Set ApXL = CreateObject("Excel.Application")
ApXL.Application.ScreenUpdating = False
ApXL.Visible = True
Set xlWBk = ApXL.Workbooks.Open("C:\blabla.xlsm", True, False)
Set xlWSh = xlWBk.Worksheets(1)
xlWSh.Activate
xlWSh.range("A1341").CopyFromRecordset rst
xlWBk.Save
xlWBk.Close False
ApXL.Quit
rst.Close
Set rst = Nothing
通知的xlWSh.range(「A1341」)CopyFromRecordset RST。 它只是粘貼來自這一行的查詢,因爲我知道這是第一個空行。
我已經嘗試過很多其他的代碼,但我總是得到錯誤:
TheLastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
=> Error 424: Object required
Dim MyRange As range
Dim lngLastRow As Long
Set MyRange = xlWSh.range(strColum & "1")
lngLastRow = xlWSh.Cells(65536, MyRange.Column).End(xlUp).Row
=> Compilation-error on Dim MyRange As range: user-defined type not defined
Dim MyRange As Object
Dim lngLastRow As Long
Set MyRange = xlWSh.range(strColum & "1")
lngLastRow = xlWSh.Cells(65536, MyRange.Column).End(xlUp).Row
=> Error 1004: Application-defined or object-defined error
With xlWBk.Sheets("Sheetname")
lastrow = .range("A" & .Rows.Count).End(xlUp).Row
=> Error 1004: Application-defined or object-defined error
End With
With xlWSh
lastrow = .Cells.Find(What:="*", After:=.range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
=> Error 9: Subscript out of range
End With
所以我不知道了該怎麼做。 唯一的其他選擇是將整個工作表作爲List或Array或Table讀入Access數據庫,然後執行.Count或其他操作,但插入到lastRow + 1或firstEmptyRow中應該更快,更易於編程。
在此先感謝!
非常感謝您的快速回復。 我對此代碼使用了第二個選項: 'lastrow = .Cells.Find(What:=「*」,After:=。range(「A1」),SearchOrder:= 1,SearchDirection:= 2).Row + 1' 而這個作品完美! – kvdw