【问题标题】:How do i dim values in an array as arrays?如何将数组中的值暗淡为数组?
【发布时间】:2017-12-03 21:52:23
【问题描述】:

只是出于好奇。

是否可以将数组中的值作为它们自己的单独数组进行调暗?

Sub test()

Dim ar(5) As Variant

ar(1) = a
ar(2) = b
ar(3) = c
ar(4) = d
ar(5) = e

For i = 1 To UBound(ar)
    Dim ar(i) As Variant '<---doesn't work :(
Next i


End Sub

【问题讨论】:

  • @A.S.H - 你应该已经发现之前我写了一个答案! :D
  • @A.S.H,我也是。
  • @YowE3K 反之亦然! :P 无论如何为什么要删除你的答案,我喜欢“混合”。
  • @Ambie 同样... :)

标签: vba excel


【解决方案1】:

如果你想要一个矩阵样式的数组,那么你可以定义一个多维数组:

Dim ar(5, x) As Variant

但您似乎想要一个锯齿状数组,即一个数组数组。在这种情况下,您只需为数组的每个元素分配一个 Array() Variant:

Dim ar(5) As Variant
ar(0) = Array(1, 2, 3)

访问“子元素”的语法是ar(x)(y):

Debug.Print ar(0)(1)

【讨论】:

    【解决方案2】:

    您应该能够将Variant 数组的一个(或多个)位置设置为数组:

    Sub test()
    
        Dim ar(5) As Variant
        Dim ar1(1 To 4) As Variant
    
        ar1(1) = 5
        ar1(2) = "x"
        Set ar1(3) = ActiveSheet
        ar1(4) = 10
    
        ar(1) = "a"
        ar(2) = "b"
        ar(3) = ar1
        ar(4) = "d"
        ar(5) = "e"
    
        Debug.Print ar(1)
        Debug.Print ar(3)(1)
        Debug.Print ar(3)(3).Name
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2021-05-06
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 2020-12-29
      • 2012-12-15
      相关资源
      最近更新 更多