Set object with a function

  • Thread starter Thread starter James
  • Start date Start date
J

James

Hello, Can I do something like this.....?
............
Dim MyTextBox as Textbox
TxtBoxNum = 3
Set MyTextBox = SetTheTextBoxFunc(TxtBoxNum)
............
Public Function SetTheTextBoxFunc(num as integer) as Textbox
select case num
case 1
SetTheTextBoxFunc = SLNX.Textbox1
case 2
SetTheTextBoxFunc = SLNX.Textbox2
case 3
SetTheTextBoxFunc = SLNX.Textbox3
end select
end function
...............
SLNX is a form with a bunch of textboxes. Thanks for any help. Cant quite
figure this out.
 
This line:

Dim myTextBox as TextBox
is declaring myTextBox as a textbox from the Drawing toolbar (placed on a sheet,
not used in a userform).

Try:

dim myTextBox as msforms.textbox

Same with the function definition:

Public Function SetTheTextBoxFunc(num as integer) as MSForms.Textbox

=======
But if you've named the textboxes nicely, you could even drop the function and
just use something like:

Option Explicit
Private Sub CommandButton1_Click()
Dim myTextBox As MSForms.TextBox
Dim iCtr As Long
iCtr = 3 'for instance
Set myTextBox = Me.Controls("Textbox" & iCtr)
End Sub
 
Thanks, "MSForms.Textbox" was the key. I didnt try "OLEObject"
I've setup naming like that before (your 2nd example) but it unfortunatly
wouldn't work in this case. Thank you for the resolution!
 
Back
Top