在Excel VBA中不使用循环显示数组

我有一个问题显示以下代码的结果:

For i = 1 To UBound(files) Step 1 Workbooks.Open files(i) With ActiveWorkbook Module2.testfunction thisWb.Sheets(1).Range("A1:C" & Ubound(testfunction)) = testfunction .Close False End With Next i 

在for循环的每个迭代中,都有一个新的工作簿,我将其应用于“testfunction”。 这个函数返回一个数组,我需要把这个数组写到macros正在运行的工作簿(“thisWb”)。 每次迭代都有一个新的数组,并且这个新的数组必须显示在下一个列的范围内,以免重叠之前显示的列(间距为一列)。

现在的代码是重叠的。 我想find一种迭代范围的方法(在列部分),而不必诉诸与Cells()循环。

可能吗?

试试这个(未经testing)

 Dim wb As Workbook, v As Variant, lCol As Long For i = 1 To UBound(Files) Set wb = Workbooks.Open(Files(i)) With thisWb.Sheets(1) lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column + 2 v = testfunction .Range(.Cells(1, lCol), .Cells(UBound(v, 1), UBound(v, 2) + lCol)) = v wb.Close False End With Next