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