我是VBA的新手,如果有任何帮助,我们将不胜感激。
我有一个UserForm,它包含3个标签和3个文本框。其中2个文本框(包括表单激活时激活的第一个文本框(为空。第三个预先填充了3个字符。当用户表单启动时,我想像往常一样填充第一个文本框,然后当我插入第二个文本框时,我希望光标自动转到这3个字母的末尾,而不是突出显示整个文本框。我环顾四周,但似乎找不到任何能轻易做到这一点的东西。你能告诉我在哪里输入这个代码吗?
我的UserForm名为"GetBIInfo2",我的文本框名为"NBIDText">
谢谢!
- 选择文本框
- 转到属性(F4(
- 滚动直到找到EnterFieldBehavior属性
- 将其更改为1-FmEnterFieldBehaviorRecallSelection
直接方法是通过文本框的.SelStart
属性;你可能会通过这样的子过程来调用它:
Sub fillAnyTextBox(myTextBox As MSForms.TextBox, ByVal firstCharacters As String)
With myTextBox
.Value = firstCharacters
.SetFocus
.SelStart = Len(firstCharacters)
.SelLength = Len(.Text) - Len(firstCharacters)
End With
End Sub
一个简单的替代方案是制作另一个文本框来容纳前三个字符,并让用户在一个单独的文本框中输入以下字符。然后,您可以编写代码,将两者的内容相加,并将它们附加到一个字符串中,如下所示:
Dim finalString As String
finalString = TextBox1.Value & TextBox2.Value