簡體   English   中英

Excel VBA 運行時錯誤'1004'對象'_Global'的方法'范圍'失敗

[英]Excel VBA Run-Time Error '1004' Method 'Range' of object'_Global' Failed

我有一個 MS Access 數據庫,用於跟蹤組的每日統計信息。 我創建了一個按鈕,它將查詢結果導出到 a.xlsx,然后創建並格式化 pivot 表以供組管理人員查看。

DoCmd.OutputTo acOutputQuery, "qry_daily_report", "ExcelWorkbook(*.xlsx)", "Z:\Users\jondoe\..........\Desktop\Export\qry_daily_report.xlsx", False, "", , acExportQualityPrint



Dim appExcel As Excel.Application
Dim myWorkbook As Excel.Workbook

Set appExcel = CreateObject("Excel.Application")
Set myWorkbook = appExcel.Workbooks.Open("Z:\Users\jondoe\..........\Desktop\Export\qry_daily_report.xlsx")
appExcel.Visible = True


ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$H$50000"), , xlYes).Name = "qry_daily_report"

我第一次單擊按鈕,導出和 pivot 表創建按預期完美運行。 但是,當我關閉 .xlsx 然后再次單擊該按鈕時,導出將起作用,但創建 pivot 表的代碼不會執行。 相反,我收到一個錯誤...“Excel VBA 運行時錯誤'1004'對象'_Global'的方法'范圍'失敗”。 當我嘗試調試它時,我的關注被突出顯示為錯誤。

 ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$H$50000"), , xlYes).Name = "qry_daily_report"

我發現如果我關閉數據庫並再次重新打開它,導出和 pivot 表可以完美運行。 同樣,如果我保存數據庫並單擊按鈕,則導出和 pivot 表可以完美運行。 對於我的客戶來說,這兩種選擇都不合理。

請問有人知道如何糾正這個錯誤嗎?

Range("$A$1:$H$50000")從全局調用,而不是從 Excel 應用程序調用。

ActiveSheet也是如此。

如果您不使用 Excel 本身,請始終明確說明您正在使用哪個Excel 實例。

appExcel.ActiveSheet.ListObjects.Add(xlSrcRange, appExcel.ActiveSheet.Range("$A$1:$H$50000"), , xlYes).Name = "qry_daily_report"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM