在循环中使用Variant数组(错误13types不匹配)

我正在做一个for循环,并需要使用Variant数组types,但我得到错误13(types不匹配)。 我想k是第一个值的3,4,5,依此类推(根据下面的variables检查)。 我只是不知道如何使vba读取数组。 我试过使用tsperiodo(i)(j)但它也没有奏效。

这是变体数组:

 ReDim ocup(1 To numDis, 1 To numSalas) As Variant For i = 1 To numDis For j = 1 To numSalas If capacidadeSalas(j) - alunos(i) >= 0 Then ocup(i, j) = 1 End If Next Next ReDim tsPeriodo(1 To numDis) As Variant For i = 1 To numDis tsPeriodo(i) = Application.Transpose(Evaluate("=ROW(" & tsInicio(i) & ":" & tsFim(i) & ")")) Next 

这里是我想要使用它的地方:

 For i = 1 To ocup(numDis, 1) For j = 1 To ocup(1, numSalas) For k = 1 To tsPeriodo(i) 'this is where im getting error 13 variable = "x_" & i & "_" & j & "_" & k Next Next Next 

对于ts​​periodo(i)

没有深入了解你想要实现什么,显然tsPeriodo的每个元素本身就是一个变体/数组,所以你最终得到某种(非标准的)二维数组。 要捕捉循环中的所有元素,可以试试这个:

 Dim k, l For Each k In tsPeriodo For Each l In k ' doSomething, ie variable = "x_" & i & "_" & j & "_" & l Next Next