Excel VBA – 我可以操作另一个工作簿上的数据吗?

背景:

每个月我都需要运行一个报告。 但是,在我能做到这一点之前,我必须将一些数据导出到excel中。 一旦数据在excel中,我必须改变一些列,并获得正确的格式,然后再附加到另一个文档的末尾做一些分析。

我想要什么:

我想有我附加数据打开的文档。 然后我将数据导出到excel从我的程序(excel只是打开数据,它不保存在任何地方),并从我的大文档运行一个VBA脚本,将改变其他工作簿(Book1)上的数据,这样如果格式正确,可以将其复制到分析文档中。

我到目前为止:

我已经开始基本了。 到目前为止,我所要做的就是将所有单元格设置为正确的高度,以便于阅读。 但是,当我运行这个代码时,我得到:

运行时错误“9”:

下标超出范围

我到目前为止的代码是:

Sub Data_Ready_For_Transfer() ' Format all cell heights to 15 With Workbooks("Book1.xlsm").Worksheets("Sheet1") Cells.RowHeight = 15 End With End Sub 

With Workbooks("Book1.xlsm").Worksheets("Sheet1")似乎存在问题With Workbooks("Book1.xlsm").Worksheets("Sheet1")是代码的一部分。 我也尝试过With Workbooks("Book1").Worksheets("Sheet1")和我已经试过这个打开,未保存的文档和保存的工作簿版本。

我错过了什么明显的?

作为后续的注释,工作簿Book1Application对象的另一个实例中被打开。

在这种情况下,这个代码应该可以工作(对于已经打开的工作簿):

 Sub Data_Ready_For_Transfer() Dim wb As Workbook Set wb = GetObject("Book1") 'if we get workbook instance then If Not wb Is Nothing Then With wb.Worksheets("Sheet1") .Cells.RowHeight = 15 End With End If End Sub 

还有一个问题,我已经将Cells.RowHeight = 15更改为.Cells.RowHeight = 15来指定Cells属于工作簿Book1工作表Sheet1