CMaster
CMaster

Reputation: 389

Variable to refer to Control array?

I know that it isn't possible to generate a control array at runtime.

However, is it possible to have several control arrays that I sub in at different points, referred to via a variable? IE

dim CArray() as controls

CArray = Labels
Foo(CArray)
CArray = OtherLabels
Foo(CArray)

My attempts to do this so far lead to a compile-time error, as it won't allow the control array actually on the form to be referred to without using a method or element. It gives the error:

Arugment not optional

Upvotes: 1

Views: 254

Answers (1)

Alex K.
Alex K.

Reputation: 175748

You could use an object:

Private Sub Form_Load()
    Dim CArray As Object
    Set CArray = Labels
    Foo CArray
End Sub

Sub Foo(CtrlArray As Object)
    Dim i as Long
    For i = 0 To CtrlArray.ubound
        CtrlArray(i).Caption = Rnd
    Next
End Sub

Upvotes: 2

Related Questions