我可以从两个不同的潜艇中填充相同的数组吗?

时间:2016-08-22 17:30:40

标签: arrays vba excel-vba multidimensional-array excel

我有一个代码,在一个子中我开始填充数组。后来在另一个子程序中,我尝试使用其他信息填充相同的数组。它无法工作,因为我收到运行时错误9.我被告知我不能这样做,因为redim不能用于我的数组的第一维。

我的问题是我可以通过另一种方式完成这项工作吗?以下是我到目前为止的情况。

发生错误:

Sub PartTwo()

    ReDim WorkArray(1 To GEMclass.NumofP, 1 To 4)

    For c = 1 To UBound(FullArray, 1)       
        If GEMclass.g = FullArray(c, 1) Then                                        
            Count = Count + 1 

            WorkArray(Count, 1) = FullArray(c, 1)
            WorkArray(Count, 2) = FullArray(c, 4)
            WorkArray(Count, 3) = FullArray(c, 7)
            WorkArray(Count, 4) = FullArray(c, 6)        
        End If        
    Next c

    ReDim Preserve WorkArray(1 To GEMclass.NumofP, 1 To 4)                
    CumulativePartners = GEMclass.NumofP

End Sub

Sub PartThree()

    For e = 1 To Count        
        If dict.Exists(WorkArray(e, 2)) Then

            TempCP = CumulativePartners
            CumulativePartners = CumulativePartners + dict(WorkArray(e, 2)).NumofP                                             
            For f = 1 To UBound(FullArray, 1)

                If WorkArray(e, 2) = FullArray(f, 1) Then                                
                    For g = 1 To dict(WorkArray(e, 2)).NumofP                                    
                        Dim test As Integer
                        test = TempCP + g

                        WorkArray(test, 1) = FullArray(f, 1)<---Runtime error 9
                        WorkArray(test, 2) = FullArray(f, 4)
                        WorkArray(test, 3) = FullArray(f, 7)
                        WorkArray(test, 4) = FullArray(f, 6)                                        
                    Next g                                
                End If

            Next f                
            ReDim Preserve WorkArray(1 To CumulativePartners, 1 To 4)
        Else
            MsgBox "No"
        End If        
    Next e

End Sub

1 个答案:

答案 0 :(得分:0)

副手,您的范围不正确。 Part2试图引用一个仅属于Part3的变量。它应该是这样的:

.center-helper {

  position: relative;
  top: 50vh;
  left: 0;
  translateY(-50%);

}

如果你在同一个模块中重构你的声明,那么WorkArray将成为两个子程序的可用变量。