【发布时间】:2017-06-16 04:48:21
【问题描述】:
我有一个处理和导入 Excel 工作簿的 Access db。它在历史上运行良好,但突然在所有工作簿上给我这个错误 - 即使是以前工作过的工作簿:
-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 db 可能已损坏,因此我重新创建了它。同样的问题。我还手动强制修复 Excel 工作簿。我什至卸载并重新安装了 Office。
现在在 Windows 7 上运行 Office 2016 64 位。
有人知道问题可能是什么吗?谢谢
【问题讨论】:
-
试试
iLastCBRow = XlBook.Worksheets("4_CensusBlocks").Range("B16001").End(-4162).Row -
在黑暗中射击:我相信您正在使用 LateBinding 从 Access 连接到 Excel。
xlUP是 Excel 常量,因此 Access 无法识别它。 -
谢谢 - 它确实知道 xlUp 因为我包含 Excel 对象引用。在即时窗口中输入 ?xlUp 返回 -4162。这段代码几个月来一直运行良好。我不知道可能发生了什么变化。
-
你能从 Excel 运行那行吗?
-
我没有看到代码有任何其他问题。