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

时间:2017-07-20 19:28:36

标签: excel-vba excel-2010 vba excel

我有一个生成多个电子表格的流程。它没有保存它们,这很好,因为通常它们会被手动保存。 我想编写一个宏,按顺序访问每个工作表,执行一些魔术,然后保存并关闭工作表。 使用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

我应该使用什么方法打开外部工作簿

先谢谢

2 个答案:

答案 0 :(得分:0)

假设正在访问的工作簿已保存在某个位置。

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

from pprint import pprint

data = ['Observed on Date 56370 at 850 F, -0.272 +/- 1.035',
        'Observed on Date 56372 at 849 F, 0.051 +/- 0.945',
        'Observed on Date 56381 at 850 F, 0.101 +/- 0.353',]

columns = list(zip(*(row.split() for row in data)))
pprint(columns)

答案 1 :(得分:0)

生成工作表的进程不会保存工作表。这是一个手动操作。有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秒