首页 > 解决方案 > 你如何 ReDim 多维数组中的第一个维度?

问题描述

看来我可以做到这一点:

ReDim Preserve myarr(1,x)

但不是这个:

ReDim Preserve myarr(x,1)

这种行为是故意的吗?如果是这样,我该如何解决?

标签: vba

解决方案


您需要先转置数组,然后对其进行更改,然后再次转置,使其保持原始格式。

Public Function TransArr(arr As Variant) As Variant 
    Dim x As Long, y As Long, j As Long, k As Long 
    Dim tmpArr As Variant 
        j = UBound(arr, 2) 
        k = UBound(arr, 1) 
        ReDim tmpArr(j, k) 
        For x = 0 To j 
            For y = 0 To k 
                tmpArr(x, y) = arr(y, x) 
            Next y 
        Next x 
        TransArr = tmpArr 
End Function 

值得注意的是,在 Access-vba 中 - .getrows 方法转储,将记录集 ps 到预先转置的数组中。


推荐阅读