|
|
本帖最后由 likeyouli 于 2024-5-6 16:22 编辑
见图, t1为一个不规则嵌套数组,t1(0)对应0-6 7个元素,t1(1)对应0-9 10个元素,后边的t1(n)可能会对应20个元素,
如果使用Transpose两次转置,即:t = WorksheetFunction.Transpose(WorksheetFunction.Transpose(t1)) 会提示错误,,当然就是不提示错误,一般也不提倡用transpose,原因是transpose有很多限制,比如限制数量不超过6万多,元素的内容不超过多少字节什么的。
sub 不规则嵌套转二维()
dim t(), t1()
'重新定义二维数组,t1其实是一个一维数组的嵌套,ubound(t1)可以显示出t1第一个元素的最大数量,但ubound(t1,2)却不行,因为t1不是二维数组。下边用的30,其实只要是用一个大点的数,只要大于等于t1第二个括号中最大的数就行。
redim t(1 to ubound(t1), 30)
for z= 0 to ubound(t1) '用z循环t1的第一个括号
for each ss in t1(z) '这里是重点,也就是数组t1的第一个括号对应的内容我看成一个集合。这里只能用for each,因为不能确定第二个括号的元素数量。
e = e+1
t(z+1,e)=ss
next ss
e=0 '这里的e其实就是为了确定t1第二个括号的元素数量
next z
Range("a1").Resize(UBound(t), UBound(t, 2)) = t '最后将数组t写入单元格即可
end sub
|
-
..png
(21.63 KB, 下载次数: 0)
评分
-
查看全部评分
|