VBA Excel打印数组到工作表 - 双重转置



我的 VBA 代码中有一个二维动态数组,其中数组维度通常为 (1800,5(,使用选项基数 0。当我尝试将此数组打印到 Excel 工作表上的 1801 行 x 6 列范围时,我必须使用工作表转置功能两次。任何想法为什么我必须这样做,有没有更好的方法可以在不使用转置功能的情况下做到这一点?

此代码有效;

ActiveWorkbook.Worksheets("Sheet1").[a1].Resize(UBound(MyArray) - LBound(MyArray) + 1, 6) = WorksheetFunction.Transpose(WorksheetFunction.Transpose(MyArray))

此代码不起作用;

ActiveWorkbook.Worksheets("Sheet1").[a1].Resize(UBound(MyArray) - LBound(MyArray) + 1, 6) = MyArray

不使用Transpose,这里有一个更健壮的方法:

Dim numRows As Long
numRows = UBound(MyArray, 1) - LBound(MyArray, 1) + 1
Dim numCols As Long
numCols = UBound(MyArray, 2) - LBound(MyArray, 2) + 1
ActiveWorkbook.Worksheets("Sheet1").Range("A1").Resize(numRows, numCols).Value = MyArray

相关内容

最新更新