VBA Control Tab Index

S

smithb2

I have several forms within an excel project and am trying to refer to
the controls, in the VBA code, on a given form by their tab index. For
example, let's say I want to set focus and active the control with an
index of 3.

I have been searching and am unable to get it right.

Can this be done?

Thanks,
Smithb2
 
G

George Nicholson

AFAIK, you'll need to loop through the entire Controls collection and, when
you find the control with the right tab index, set focus to it and exit the
loop. I've never done this while referencing TabIndexes but I suspect that
"On Error Resume Next" may be your best friend in this case since not all
controls will have a TabIndex property. There may be other issues involved
that I am unaware of.

(untested aircode)

Call SetFocusByTabIndex(Me,3)

Sub SetFocusByTabIndex(frm as Form, iTab as Integer)
On Error Resume Next
Dim ctl as Control

For each ctl in frm.Controls
If ctl.TabIndex = iTab Then
ctl.SetFocus
Exit For
End If
Next ctl
End Sub

HTH,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top