2017-07-13 60 views
1

我在使用Access中的VBA模塊在Excel電子表格中創建新表格存在問題。MS Access VBA無法在Excel中創建新的表格對象

這裏是我的代碼:

Option Compare Database 
Option Explicit 

Sub QueryExportMod() 

Dim db As DAO.Database 
Set db = CurrentDb 

Dim xlApp As Excel.Application 
Dim wb As Excel.Workbook 
Dim ws As Excel.Worksheet 
Set xlApp = New Excel.Application 
Set wb = xlApp.Workbooks.Open(CurrentProject.Path & "\ExportExcelTest.xlsm") 
Set ws = wb.Worksheets("Sheet1") 

ws.ListObjects.Add(xlSrcRange, Range("$A$20:$B$21"), , xlYes).Name = "tb2" 

xlApp.Visible = True 

xlApp.Run "callAG" 

Set xlApp = Nothing 
Set wb = Nothing 
Set ws = Nothing 

End Sub 

這是給我的問題該生產線是ws.ListObjects.Add(xlSrcRange, Range("$A$20:$B$21"), , xlYes).Name = "tb2"

我收到運行時錯誤5:「無效的過程調用或參數」我根據實際的VBA文檔編寫了這一行。我還記錄了一個用於在Excel中創建表的宏,並獲得了完全相同的行。

我該如何解決這個問題?

+0

您正在打開工作簿和工作表兩次。而你的範圍不合格;將它們定義爲屬於工作表。 – Gustav

+0

感謝@Gustav的回覆。我很抱歉,底部的額外sub只是我嘗試過的,我編輯了代碼來修復。我怎樣才能確保我的範圍合格? –

+0

想通了如何限定範圍,謝謝! –

回答

0

解決了問題 - 範圍不合格。

Dim rng As Range 
Set rng = ws.Range(A20:B21) 

ws.ListObjects.Add(xlSrcRange, rng, , xlYes).Name = "tb2"