簡體   English   中英

Access / Excel:方法對象結束范圍失敗?

[英]Access/Excel: Method End of object Range failed?

我有一個Access db,用於處理和導入Excel工作簿。 從歷史上講它運行良好,但是突然在所有工作簿上給我這個錯誤-甚至以前的工作簿也是如此:

-2147417851: Method 'End' of object 'Range' failed 

導致問題的行是:

iLastCBRow = XlBook.Worksheets("4_CensusBlocks").Range("B16001").End(xlUp).Row

如果我在立即窗口中瀏覽此行並輸入

XlBook.Worksheets("4_CensusBlocks").Range("B16001").Value

它正確返回該單元格的值。

我認為Access數據庫可能已損壞,所以我重新創建了它。 同樣的問題。 我還手動對Excel工作簿進行了強制修復。 我什至卸載並重新安裝了Office。

現在在Windows 7上運行64位Office 2016。

有誰知道可能是什么問題? 謝謝

看起來是因為文件中的行數超過了16001。 第一條命令

iLastCBRow = XlBook.Worksheets("4_CensusBlocks").Range("B16001").End(xlUp).Row)

將iLastCBRow設置為起始行。

嘗試使用

iLastCBRow = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row

代替

我仍然不明白為什么,但是問題似乎出在使用Excel對象變量的早期綁定。 一旦我就位

dim xl as object 
dim xlbook as object
set xl = createobject("Excel.Application")
set xlbook = xl.workbooks.open(filename)

不只是

dim xlbook as excel.workbook
set xlbook = getobject(filename)

錯誤消失了。 我整個時間只安裝了Office 2016,所以也許更新使OLE服務器認為我安裝了多個Office或其他東西? 不知道。

暫無
暫無

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

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