Excel VBA如何用多个Excel范围的值填充多维(3d)数组?

我想从Excel工作表中存储的数据填充一个3d数组。 我希望我只是不知道语法,但是可能无法像使用2D数组一样将值分配给3D数组。 如…

Dim 2DArray() As Variant 2DArray = Range(A1:C10) 

这是干净而高效的,我希望有相当的东西,而不是使用3个嵌套for-next循环来一次填充数据的一个值。

为了背景,这是查找/内插气体压缩因子Z,其取决于比重,压力和温度。 我有6个表(实际上只是命名范围)为6个不同的比重值。 每张表的压力和温度与Z因子交叉列表作为数据点。 这是我有的代码(这是行不通的):

 Sub Array3DTest() Dim ZTables() As Variant ReDim ZTables(1 to 6, 1 to 15, 1 to 9) '6 specific gravity tables, '15 pressure indices, 9 temp indices 'Here is my feeble attempt to guess the syntax... 'ZTables = ("tblZFactorSG1", "tblZFactorSG2", "tblZFactorSG3", ' "tblZFactorSG4", "tblZFactorSG5", "tblZFactorSG6") End Sub 

为了澄清,tblZFactorSG1 … SG2 … SG3 …等是与交叉标签Z因素的6个命名范围。 所有15列(压力)乘以9列(温度)。 最后一行被注释掉了,因为VBA不喜欢语法,但是也许你可以看到我在这里想要做什么。 我试图将数据分配到15×9的大块3Darrays。 tblZFactorSG1包含应该在ZTables(1,1至15,1至9)中的值。 tblZFactorSG2包含ZTables(2,1到15,1到9)中的值。

在此先感谢您的帮助。

 Sub ArrayOfArrays() Dim ZTables(1 to 6) As Variant, x as Long, ranges ranges = Array("tblZFactorSG1", "tblZFactorSG2", "tblZFactorSG3", _ "tblZFactorSG4", "tblZFactorSG5", "tblZFactorSG6") For x=1 to 6 ZTables(x) = ActiveSheet.Range(ranges(x-1)).Value Next x End Sub