如何在UserForm中文本框的第三个字符后开始光标



我是VBA的新手,如果有任何帮助,我们将不胜感激。

我有一个UserForm,它包含3个标签和3个文本框。其中2个文本框(包括表单激活时激活的第一个文本框(为空。第三个预先填充了3个字符。当用户表单启动时,我想像往常一样填充第一个文本框,然后当我插入第二个文本框时,我希望光标自动转到这3个字母的末尾,而不是突出显示整个文本框。我环顾四周,但似乎找不到任何能轻易做到这一点的东西。你能告诉我在哪里输入这个代码吗?

我的UserForm名为"GetBIInfo2",我的文本框名为"NBIDText">

谢谢!

  1. 选择文本框
  2. 转到属性(F4(
  3. 滚动直到找到EnterFieldBehavior属性
  4. 将其更改为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

最新更新