我在excel文档中放置了几个activeX按钮和组合框。现在,要从一个对象转到另一个对象,我必须用鼠标选择下一个对象。我希望能够只按Tab键从一个组合框转到另一个组合框。有没有人对此有任何想法?
答案 0 :(得分:0)
您可以编写KeyDown事件并查找Tab,然后激活您想要的任何控件。这是一个示例,其中工作表和选项卡上有三个组合框, 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
如果您不想在导航方案中包含每个OLEObject,则会变得更加复杂。