设置已打开的工作簿时,下标超出范围,VBA

问题描述 投票:2回答: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部分的工作簿名称。想要说清楚。另外,在调试时,我已经根据打开的工作簿的名称进行了双重检查,这是正确的。

excel vba automation subscript
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.