两个模块,相同的代码行,一个代码工作但其他代码不工作

时间:2016-08-30 13:57:47

标签: excel-vba class runtime-error vba excel

我刚刚开始使用词典和类集合。我使用两种方法编写了一个代码很好(见下面的代码)。

For a = 2 To UBound(FullArray, 1)

        Set GEMclass = dict.Items(a) '<-------
        GEM = GEMclass.g

             'Do while loop
             Do

            'Check to see if Parent has an owner
             If (Not (dict.Exists(GEM))) Then

                     Nrow = 0
             Else

                      Nrow = dict(GEM).Num

                      Call Main
                      Call PartTwo
                      Call PartThree

             End If

             Loop Until (Nrow = 0) 'keep doing this unti no tree link

Next a

Call TurnOnFunctionality

End Sub

但是,我尝试在另一个子代码中使用相同的代码行,但它不起作用(该行标有箭头)。

Dim i As Integer

    If ((GemDict.Exists(GEM))) Then

    i = GemDict.Item(GEM)
    i = i - 2
    Set GEMclass = GemDict.Items(i) '<-------

            'Debug.Print GemDict.Item(GEM)

            'Debug.Print GemDict.Keys(i)

                If GEMclass.NumofP > 1 Then

                MsgBox "Greater 1"

                Else

                MsgBox "Only 1"

                End If

    End If

    GEM = GEMclass.P

我在每个代码中都声明了两个GEMclass

Public GEMclass As Gclass

有什么想法吗?我很难过。

0 个答案:

没有答案