Excel 在循环中写入数组

Excel 在循环中写入数组,excel,vba,Excel,Vba,首先感谢你的帮助 我编写了一个代码,它遍历特定的列,然后开始获取将数组放入该数组Arry所需的所有值 因此,每个off-Arryi包含一个不同大小的数组 所以 Arry0具有0到1的数组 Arry1具有0到2的数组 Arry2具有0到1的数组 Arry3具有0到3的数组 Arry4具有0到5的数组 和调试。例如,打印Arry43将输出分开,这是Arry4中的第3项与定义Arry0…Arry9不同,您必须将其定义为数组Dim Arry0到9作为变量,以便在类似Arryi的循环中使用它。实际上就像你

首先感谢你的帮助


我编写了一个代码,它遍历特定的列,然后开始获取将数组放入该数组Arry所需的所有值

因此,每个off-Arryi包含一个不同大小的数组

所以

Arry0具有0到1的数组 Arry1具有0到2的数组 Arry2具有0到1的数组 Arry3具有0到3的数组 Arry4具有0到5的数组
和调试。例如,打印Arry43将输出分开,这是Arry4中的第3项与定义Arry0…Arry9不同,您必须将其定义为数组Dim Arry0到9作为变量,以便在类似Arryi的循环中使用它。实际上就像你在10大区域做的一样但请确保您摆脱了所有这些选择语句,请参阅链接。谢谢您的建议。但我想创建10个不同的数组,大小未知。你可以,那只是数组中的一个数组。请看下面的例子。我明白了,谢谢
Sub zones()

Dim Top10zones(0 To 9) As Long
Dim found As Boolean

Dim temp As Variant
Dim Arry0 As Variant
Dim Arry1 As Variant
Dim Arry2 As Variant
Dim Arry3 As Variant
Dim Arry4 As Variant
Dim Arry5 As Variant
Dim Arry6 As Variant
Dim Arry7 As Variant
Dim Arry8 As Variant
Dim Arry9 As Variant


Top10zones(0) = 309101502
Top10zones(1) = 309101802
Top10zones(2) = 106900101
Top10zones(3) = 9082004
Top10zones(4) = 407100901
Top10zones(5) = 2056355
Top10zones(6) = 5075001
Top10zones(7) = 10092021
Top10zones(8) = 5075005
Top10zones(9) = 205701516

 NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count

For i = 0 To 9
Range("A1").Select
    Do Until IsEmpty(ActiveCell)
         If ActiveCell.Value = Top10zones(i) Then
            found = True
            Exit Do
         End If

         ActiveCell.Offset(0, 1).Select
      Loop
   ' Check for found.
      If found = True Then
      ActiveCell.Offset(1, 0).Select
      For j = 2 To NumRows
      If ActiveCell.Value <= 1 Then
      temp = temp & "," & Cells(j, 1)
      End If
      ActiveCell.Offset(1, 0).Select
      Next j
      Arryi = Split(Mid(temp, 2), ",")

      End If




End Sub



Option Explicit

Public Sub Example()

    Dim SplitText(0 To 4) As String
    SplitText(0) = "This is"
    SplitText(1) = "a test string"
    SplitText(2) = "array where"
    SplitText(3) = "the items have different"
    SplitText(4) = "numbers of words separated by spaces"

    Dim (0 To 4) As Variant

    Dim i As Long
    For i = 0 To 4
        Arry(i) = Split(SplitText(i), " ")
    Next i
End Sub