通过跳转来启用Excel表单导航

我有几个activeXbutton和combobox放在一个Excel文档。 现在,从一个对象到另一个对象,我必须用鼠标select下一个对象。 我希望能够按Tab键从一个combobox到另一个combobox。 有没有人有任何想法呢?

您可以编写KeyDown事件并查找Tab,然后激活您想要的任何控件。 下面是一个示例,其中在工作表和选项卡上有三个combobox,可以使用shift + 选项卡在其中导航。

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyTab Then NavOle Me.OLEObjects(Me.ComboBox1.Index), Shift End If End Sub Private Sub ComboBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyTab Then NavOle Me.OLEObjects(Me.ComboBox2.Index), Shift End If End Sub Private Sub ComboBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyTab Then NavOle Me.OLEObjects(Me.ComboBox3.Index), Shift End If End Sub Private Sub NavOle(ByRef OleActive As OLEObject, Shift As Integer) If Shift = 1 Then If OleActive.Index = 1 Then Me.OLEObjects(Me.OLEObjects.Count).Activate Else Me.OLEObjects(OleActive.Index - 1).Activate End If Else If OleActive.Index = Me.OLEObjects.Count Then Me.OLEObjects(1).Activate Else Me.OLEObjects(OleActive.Index + 1).Activate End If End If End Sub 

如果您不想在导航scheme中包含每个OLEObject,则会变得更加复杂。