1

我正在编写一个宏来选择和使用已经打开的工作簿。

通过用户窗体获取名称后,当我尝试设置工作簿或与之交互时,我得到一个下标超出范围错误。

我已确认工作簿已打开,并且 ExcelAp 对象正在连接到正确的 Excel 实例。

Option Explicit

....

Public Sub TerminalOpen()
Dim WorkbookOpen        As VbMsgBoxResult
Dim ExcelAp             As Excel.Application
Dim FedExWkbk           As Excel.Workbook

....

Else
    Set ExcelAp = Excel.Application
    WorkbookSelection.Show
    WkbkFedExTracking = Trim(VBA.Left(WkbkFedExTracking, InStr(1, WkbkFedExTracking, ".", vbTextCompare) - 1))
    Set FedExWkbk = ExcelAp.Workbooks(WkbkFedExTracking)  <<<<< This is where the error occurs
    FedExWkbk.Activate
End If

我尝试后期绑定 ExcelAp。这种方法似乎在其他情况下有效,但在这个情况下无效。

工作簿名称存储在 WkbkFedExTracking 字符串中。它被清理为没有 .xlsx 部分的工作簿名称。此外,在调试时,我已经根据打开的工作簿的名称检查了它,它是正确的。

4

1 回答 1

0

此问题已解决。它是工作簿索引名称上删除的 .xlsx 扩展名以及由于 application.Visible = true 行放置不当导致的 excel 杂散实例的组合。有关更多详细信息,请参阅原始帖子的评论。

于 2013-09-16T16:16:01.687 回答