小编use*_*794的帖子

ReDim 保留 3D VBA

问题:我有以下两个函数可以有效地 ReDim 保留所有维度的 3D 数组,transposeArray3D 和 ReDimPreserve3D。但是,即使我尝试在转置函数中重新设置值,这也会擦除通过这些函数的任何数组。具体来说,当我用鼠标(tnewArray)调试并悬停在临时数组上时,excel 指示数组为空。

上下文:这是将类似于 CSV 的文件转换为 Excel 表格的尝试的一部分,主要是通过拆分 3 个分隔符:3D 数组是跟踪“表格编号”所必需的。我不明白为什么函数不能读取传递给它们的数组。

我已经包含了调用这些函数的过程,以防万一问题不在函数中。

Public Function transposeArray3D(arr3d As Variant) As Variant
    Dim x As Variant, y As Variant, z As Variant, xub As Long, yub As Long, zub As Long, newArray As Variant
    xub = UBound(arr3d, 1) 'x,y,z correspond to dim 1,2,3 of the OLD array
    yub = UBound(arr3d, 2)
    zub = UBound(arr3d, 3)
    ReDim newArray(zub, xub, yub)
    For x = …
Run Code Online (Sandbox Code Playgroud)

excel vba multidimensional-array

2
推荐指数
1
解决办法
33
查看次数

标签 统计

excel ×1

multidimensional-array ×1

vba ×1