如何解决ReDim 保留 3 维数组 VBA
我正在 catia 中处理 VB 代码。有多个工作表,每张工作表都有几个表格,其中的行和列以及表格的数量是不固定的。我想创建一个 3 维数组,它可以将每个表数据捕获到它下面的每个 2 维数组中。我试过 Redim 和 Redim 保留,但它不起作用。
这是代码示例。
表一
1 2 3 4 5
2 3 2 3 2
1 2 1 1 4
表 2
9 8 8
7 8 6
这些是每张表格中的表格样本。假设我能够计算表格的尺寸和表格中表格的数量。
这是我试过的代码示例。
Dim array() as variant
Dim ntables as integer 'Number of tables
Dim rcount as integer
Dim ccount as integer
for each table in tables
rcount=table.rows.count
ccount=table.columns.count
redim preserve array(ntables,rcount,ccount) as varient
next
''' '''
我想要一个多维数组
数组(0)
array(0,0)
array(0,1)
array(0,2)
array(0,3)
array(0,4)
array(0,5)
array(0,1,5)
array(0,2,5)
数组(1)
array(1,0)
array(1,1)
array(1,2)
array(1,3)
array(1,3)
解决方法
如果只是表的数量不同,请考虑使用 Collection
的 2D 数组而不是使用 3D 数组。
考虑以下工作示例(使用 2 个表)
Public Sub TestFillData()
Dim tables() As Variant
tables = Array( _
Range("A2").Resize(16,4),_
Range("I2").Resize(100,7) _
)
Dim col As New Collection
Dim item As Variant
For Each item In tables
col.Add item.Value2 ' Range().Value2 returns a 2D array
' when more than one cell is referenced.
Next
' col.Count() = 2
' col(1) = 16x4 array
' col(2) = 100x7 array
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。