1

我的宏中有一些代码如下

ChDir File_pth
Workbooks.Open filename:= File_pth & "\" & open_tkt
Workbooks.Open filename:= File_pth & "\" & closed_tkt
ActiveSheet.Select
Windows("MSS - Ticket Backlog Benchmark_2013 09 05.xlsx").Activate
Sheets("Extract -prev").Select

当我运行宏打开另外两个文件时,它应该返回到我运行宏的文件,以便在同一个 Xl 工作簿中执行一些操作。

我在行中得到超出范围的错误

Windows("MSS - Ticket Backlog Benchmark_2013 09 05.xlsx").Activate

文件 MSS - Ticket Backlog Benchmark_2013 09 05.xlsx 存在。

4

3 回答 3

2

尝试

windows("MSS - Ticket Backlog Benchmark_2013 09 05").Activate

您可以在调试窗口中检查所有打开的工作簿的名称,如下所示:

dim oBook as workbook

for each obook in workbooks
    debug.print ">" & obook.name & "<"
next
于 2013-05-14T10:11:58.217 回答
2

激活原始工作表也应该将原始窗口带到前面,因此您不需要玩窗口。(无论如何对我有用)

Dim Book As Workbook ' probably not needed
Set Book = ThisWorkbook ' probably not needed
Dim Sheet As Worksheet
Set Sheet = ActiveSheet
ChDir File_pth
Workbooks.Open filename:= File_pth & "\" & open_tkt
Workbooks.Open filename:= File_pth & "\" & closed_tkt
Book.Activate() ' probably not needed
Sheet.Activate()

在激活原始工作表之前,我添加了代码来激活原始工作簿(最后带有注释的行),正如它所说,它们可能不需要。

变量BookSheet是对活动工作簿 (ThisWorkbook) 和活动工作表 (ActiveSheet) 的引用。这就是@mehow 的建议。

于 2013-05-14T13:01:22.907 回答
0

您必须将宏放在模块中,而不是放在“本工作簿”或特定工作表中。否则,您将遇到窗口交互问题。我遇到了同样的问题,这就是我解决它的方法。

像这样:

于 2019-03-22T00:46:51.553 回答