TabIndex工作不正常

时间:2016-07-08 18:56:05

标签: vba excel-vba excel

目标:

当我在VBA用户表单中切换页面时,我希望某个字段成为第一个输入值。然后我希望它们在我通过它们时顺序切换。

到目前为止我做了什么:

页面被创建(在大多数情况下,它们仍然需要艺术头脑使它看起来像工程师没有这样做),逻辑制定,基本上一切都已完成。输入字段tabIndex属性从20开始设置,按照我想要的顺序上升到27.图片将在下面附加。

问题:

当我按下下一个按钮时,用户窗体自动进入“冷却系统”下拉菜单。如果我按Tab键,它会转到下一个下拉列表。然后以奇怪但不变的顺序通过其他选项。而奇怪的是,我可以打字,但没有文字出现。光标移动,但后面没有任何东西。在我查看了所有内容之后,如果我再次按Tab键,那么它就会按照我的要求执行操作。我附上图片和下一个按钮的代码。感谢您的高级帮助。如果我能说清楚的话,请告诉我!

工作正常的页面: The page that works fine

问题页面(我试图显示当你输入时没有显示任何内容,它会自动显示下拉菜单): enter image description here

“下一步”按钮的代码:

Private Sub bNextSystem1_Click() 'checks to see if all parameters are entered

If IsNumeric(Me.txtS1elec.value) = True And IsNumeric(Me.txtS1NG.value) = True And IsNumeric(Me.txtS1sqft.value) = True Then

    If Me.txtS1elec.value <> "" And Me.txtS1NG.value <> "" And Me.txtS1sqft.value <> "" And Me.ddS1Cooling.ListIndex > -1 And Me.ddS1Heating.ListIndex > -1 Then

        NextPage
        Me.txtS1elec.BackColor = vbWhite
        Me.txtS1NG.BackColor = vbWhite
        Me.txtS1sqft.BackColor = vbWhite

    Else

        MsgBox "Please check to see if all options are selected or entered."
        GoTo CleanFail

    End If

Else

    HighlightBadCells1 'checks for incorrect cell input values
    MsgBox "Please check the highlighted cells"
    GoTo CleanFail

End If

Me.txtS2elec.value = Me.txtS1elec.value
Me.txtS2NG.value = Me.txtS1NG.value

CleanFail:
End Sub

“NextPage”子例程的代码:

 Private Sub NextPage()

MultiPage1.Pages(MultiPage1.value + 1).Visible = True 'hides current page
MultiPage1.Pages(MultiPage1.value).Visible = False 'reveals next page

End Sub

1 个答案:

答案 0 :(得分:2)

  • 选择多页页面
  • CLick View - &gt; Tab Oder

这将显示Tab Order Dialog。

enter image description here