Deleting Elements in an Array if Element is a Certain value VBA

后端 未结 8 1438
小蘑菇
小蘑菇 2020-11-27 20:14

I have a global array, prLst() that can of variable length. It takes in numbers as strings \"1\" to Ubound(prLst). However, when the

8条回答
  •  谎友^
    谎友^ (楼主)
    2020-11-27 20:44

    Sub DelEle(Ary, SameTypeTemp, Index As Integer) '<<<<<<<<< pass only not fixed sized array (i don't know how to declare same type temp array in proceder)
        Dim I As Integer, II As Integer
        II = -1
        If Index < LBound(Ary) And Index > UBound(Ary) Then MsgBox "Error.........."
        For I = 0 To UBound(Ary)
            If I <> Index Then
                II = II + 1
                ReDim Preserve SameTypeTemp(II)
                SameTypeTemp(II) = Ary(I)
            End If
        Next I
        ReDim Ary(UBound(SameTypeTemp))
        Ary = SameTypeTemp
        Erase SameTypeTemp
    End Sub
    
    Sub Test()
        Dim a() As Integer, b() As Integer
        ReDim a(3)
        Debug.Print "InputData:"
        For I = 0 To UBound(a)
            a(I) = I
            Debug.Print "    " & a(I)
        Next
        DelEle a, b, 1
        Debug.Print "Result:"
        For I = 0 To UBound(a)
            Debug.Print "    " & a(I)
        Next
    End Sub
    

提交回复
热议问题