每个月我都需要运行一份报告。但是,在我能够做到这一点之前,我必须将一些数据导出到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").Worksheets("Sheet1")
,我尝试使用未打开的未保存文档和工作簿的保存版本。
我错过了一些明显的东西吗?
答案 0 :(得分:2)
作为评论的后续跟踪,工作簿Book1
已在 Application
对象的另一个实例中打开。
在这种情况下,此代码应该可用(对于已打开的工作簿):
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
。