引用数组中另一个工作簿的数据

时间:2018-03-14 22:33:20

标签: vba excel-vba excel

我目前正在使用以下代码从活动工作簿中定义一个数组

Dim MyRangeArray As Variant


MyRangeArray = Array(Sheet1.Range("A4:N19"), Sheet2.Range("A4:N19"))

我希望此数组引用来自另一个工作簿的数据,而不是具有代码的工作簿。我要找的结果是:

MyRangeArray= Array(Wb1.sheets.RangeX,wb2.sheets.rangeX)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

在你的第一个例子中,你正在使用表单代码名称,它将引用包含代码的书中的表格,而不管该书是否有效。

要引用不同的工作簿,无论它是否处于活动状态,都要创建对工作簿和工作表对象的引用

Dim MyRangeArray As Variant
Dim wb As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set wb = Application.Workbooks("NameOfWorkbook.xlsx")
Set ws1 = wb.Worksheets("NameOfSheet1")
Set ws2 = wb.Worksheets("NameOfSheet2")
MyRangeArray = Array(ws1.Range("RangeAddress1").Value, ws2.Range("RangeAddress2").Value)

答案 1 :(得分:0)

我通过执行以下操作解决了错误:

Dim r1,r2作为范围

R1 = ws1.Range(" RangeAddress1&#34) R2 = ws2.Range(" RangeAddress2&#34)

Mrangearray = array(r1,r2)