为了账号安全,请及时绑定邮箱和手机立即绑定

如何在VBA中设置“锯齿状阵列”?

如何在VBA中设置“锯齿状阵列”?

冉冉说 2019-12-02 11:03:35
我的教室里满是孩子,每个孩子都必须列出自己喜欢的玩具以作作业。有些孩子只列出1个玩具,而另一些孩子列出更多。如何创建一个锯齿状的数组,使Kids(x)(y)...其中x是我班上孩子的数量,y是他们列为收藏夹的玩具列表?
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

您可以使用收藏集


Public Sub Test()


    Dim list As New Collection

    Dim i As Integer, j As Integer

    Dim item As Collection

    For i = 1 To 10

        Set item = New Collection

        For j = 1 To i

            item.Add "Kid" & CStr(i) & "Toy" & CStr(j)

        Next j

        list.Add item

    Next i


    Debug.Print "Kid 4, Toy 2 = " & list(4)(2)

End Sub

哪个输出 Kid 4, Toy 2 = Kid4Toy2


查看完整回答
反对 回复 2019-12-02
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

Jean-Francois指出,每个元素可以是长度可变的数组。我要补充一点,每个元素也可以是其他类型,而不必是数组。例如:


Dim c as New Collection

Dim a(1 to 5) as Variant


c.Add "a","a"

c.Add "b","b"

a(1) = 5

a(2) = Array(2,3,4)

set a(3) = c

a(4) = "abcd"

a(5) = Range("A1:A4").Value

然后可以根据每个子元素的隐式类型来引用各个子元素:


a(2)(1)= 3


a(3)(1)=“ a”


a(5)(2,1)=单元格A2中的内容。


查看完整回答
反对 回复 2019-12-02
  • 3 回答
  • 0 关注
  • 492 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信