Populate array for SolidWorks Components and then use it

The program errors here: swComp = swCompArr(i) with Rin-time error 91, Object Variable or With block variable not set

Sub main()

    ' Connect to SolidWorks

    Dim swApp As SldWorks.SldWorks

    Set swApp = Application.SldWorks

  

    ' Assembly, Current active document if it is an assembly

    Dim swAssy As SldWorks.AssemblyDoc

    Set swAssy = swApp.ActiveDoc

           

    Dim swComp As SldWorks.Component2

       

    Dim i As Integer

    i = 0

   

    Dim c As Integer

    c = swAssy.GetComponentCount(True)

   

    MsgBox c

   

    Dim swCompArr As Variant

    swCompArr = swAssy.GetComponents(True)

   

    Do While Not i = c

        If Not IsEmpty(swCompArr) Then

            swComp = swCompArr(i)

           

            ' Component Part No must begin with 242 and not be supressed

            If swComp.IsSuppressed = 1 Or Left(swComp.Name, 3) <> "242" Then

                ' Do Nothing

                                                                        

            Else

                ' Set Component

                Dim swModel2 As SldWorks.ModelDoc2

                swModel2 = swComp.GetModelDoc2

                Dim swModelDocExt As SldWorks.ModelDocExtension

                swModelDocExt = swModel2.Extension

                   

                Dim swSelMgr As SldWorks.SelectionMgr

                swSelMgr = swModel2.SelectionManager

                   

                Dim bComp As Boolean

                bComp = swModelDocExt.SelectByID2("#20 (0.161) Diameter Hole1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, swSelectOptionDefault)

               

                Dim Feature As SldWorks.Feature

                Feature = swComp.FirstFeature

               

                Do While Not Feature Is Nothing

                    If Feature = "#20 (0.161) Diameter Hole1" Then

                        MsgBox "Found " & Feature.Name

                       

                    End If

                   

                    Feature = Feature.GetNextFeature

                   

                Loop

                       

                ' Project points

            End If

       

        End If

        i = i + 1

       

    Loop

   

End Sub

SolidworksApi macros