I am trying to replace the following:
txt1.Text = ""
txt2.Text = ""
txt3.Text = ""
txt4.text = ""
...continues for quite awhile
With:
Dim cCont As Control
For Each cCont In Me.Controls
If TypeName(cCont) = "TextBox" Then
'reset textbox value
   ???
End If
Next cCont
How do I refer to the textbox using the generic 'Control'?
You already have your control in cCont.
Dim cCont As Control
For Each cCont In Me.Controls
  If TypeOf cCont Is MSForms.TextBox Then
    cCont.Text = "hi"
    MsgBox cCont.Name
  End If
Next
If you're confused by the fact you don't get the Text property from IntelliSense, just cast the Control to a more derived type:
Dim cCont As Control
For Each cCont In Me.Controls
  If TypeOf cCont Is MSForms.TextBox Then
    Dim cText As MSForms.TextBox
    Set cText = cCont
    cText.Text = "hi"
    MsgBox cText.Name
  End If
Next
This will use early binding instead of late binding, and you'll get your code suggestions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With