View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
George Nicholson[_2_] George Nicholson[_2_] is offline
external usenet poster
 
Posts: 170
Default VBA Control Tab Index

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,
--
George Nicholson

Remove 'Junk' from return address.


wrote in message
ups.com...
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