【问题标题】:VBA Make a text box in a UserForm Active when the UserForm activates?当用户窗体激活时,VBA 使用户窗体中的文本框处于活动状态?
【发布时间】:2014-03-01 04:34:23
【问题描述】:

如何在用户窗体激活时激活用户窗体中的文本框,以便用户无需单击文本框即可开始输入?

【问题讨论】:

    标签: vba excel excel-2010


    【解决方案1】:

    您正在寻找的是 TabIndex 属性。

    你的用户窗体上的每个对象都有一个,它是当你按下标签按钮时选择用户窗体上的对象的顺序。 0 TabIndex 的对象也将是加载表单时的活动对象:

    因此,选择 textbox 后,转到属性窗格并查找 Tabindex 将其设置为 0,您的 textbox 将在打开时被选中。

    您还可以将其他 textboxes 索引设置为 1,2,3 等,这样如果正在填写表单,您只需按 Tab 从一个文本框转到另一个文本框。

    【讨论】:

    • 另一个说明。 TabIndex 适用于表单上的所有对象,而不仅仅是文本框。
    • @ilarson007 请注意我回答的第二行,我说Every object on your userform has one,如果您觉得它已经完全回答了它,请随时接受我的回答作为对您的问题的回答。
    【解决方案2】:

    使用.SetFocus。如果您的文本框的名称是 TextBox1,则以下工作:

    Private Sub UserForm_Initialize()
        TextBox1.SetFocus
    End Sub
    

    如果这有帮助,请告诉我们。

    【讨论】:

    • 这个在我的代码中不起作用。表单初始化时,取消按钮仍处于“选中状态”。
    • 这可能对您的情况不起作用,因为 Initialize 和 Activate 方法不一样。 Initialize 仅在打开工作簿后第一次起作用。 UserForm_Activate() 将在每个 Show() 上触发。
    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2022-07-02
    相关资源
    最近更新 更多