通过VBA访问另一个Excel实例中的Excel 2010工作表

通过VBA访问另一个Excel实例中的Excel 2010工作表,excel,excel-2010,vba,Excel,Excel 2010,Vba,我有一个生成多个电子表格的流程。它不会保存它们,这很好,因为通常它们是手动保存的。 我想写一个宏,按顺序访问每个工作表,执行一些魔术,然后保存并关闭工作表。 使用Excel 2016时,这不是问题。 但是我的工作中有Excel 2010,它看不到任何工作手册 在Excel 2016中,此方法有效: Workbooks("Book3").sheets("B3T1").activate ActiveWindow.WindowState = xlMaximized 使用Excel 2010,我收到的

我有一个生成多个电子表格的流程。它不会保存它们,这很好,因为通常它们是手动保存的。 我想写一个宏,按顺序访问每个工作表,执行一些魔术,然后保存并关闭工作表。 使用Excel 2016时,这不是问题。 但是我的工作中有Excel 2010,它看不到任何工作手册

在Excel 2016中,此方法有效:

Workbooks("Book3").sheets("B3T1").activate
ActiveWindow.WindowState = xlMaximized
使用Excel 2010,我收到的信息如下:

Workbooks("Book3").sheets("B3T1").activate
runtime error '9'. Subscript out of Range
我应该使用什么方法打开外部工作簿


谢谢,如果正在访问的工作簿已保存在某个位置,请提前

这将打开外部文件并访问它们。宏还将关闭并保存文件

Dim wb As Workbook
Dim fileloc As String
fileloc = "" & "C:namenamename"  & ".xlsm" & ""
Set wb = Workbooks.Open(fileloc)
wb.Worksheets("Sheet1").activate
wb.Close savechanges:=True

生成工作表的流程不会保存工作表。那是手动操作。共有100张工作表,我想找到一种方法来避免将每张工作表最大化/处理/保存

GetObject方法终于起作用了:

For ptr = 1 To 100
    Set xlApp = GetObject("Book" & ptr).Application
    xlApp.Application.Workbooks("Book" & ptr).Sheets(1).Activate
    do some processing
    xlApp.Application.Quit
next

一小时以上的流程现在缩短为1秒

您的外部工作簿是否始终位于同一存储库中?如果是这样,您可以使用工作簿。打开方法?工作簿已打开。它还没有被保存。它们是第一册……第十八册。每一行有两张工作表“表”、“数据”您是否尝试将这一行分成两行,以查看“超出范围”错误是否来自工作表或工作簿?是工作簿(“名称”)导致了问题。