我正在编写一个宏来选择和使用已经打开的工作簿。
通过用户窗体获取名称后,当我尝试设置工作簿或与之交互时,我得到一个下标超出范围错误。
我已确认工作簿已打开,并且 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 部分的工作簿名称。此外,在调试时,我已经根据打开的工作簿的名称检查了它,它是正确的。