VBA-如何在文本框中的特定位置设置光标?

Gre*_*zer 5 vba textbox cursor

标题主要说明了我的需求。我有一个文本框,使用该_keypress过程不断检查数据有效性。如果用户输入,(那么我会通过键入右括号为他们自动填写)。结果为(),光标位于文本框的末尾。我的问题是,如何将光标后退一步以将其置于两个括号之间?谢谢,

编辑:测试方案:

Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    If KeyAscii = Asc("(") Then
        txtInput.value = txtInput.value & "()"
        KeyAscii = 0
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

希望这可以使它更清楚,

Mat*_*NNZ 7

使用对象的SelStart属性TextBox

Me.TextBox1.Value = "()"
Me.TextBox1.SelStart = 1
Run Code Online (Sandbox Code Playgroud)

注意:SelStart=1表示光标会在第一个元素之后,即“ (”。因此,您应该使用字符串来了解您想要的SelStart属性值应该是什么。

  • @Grendizer 我猜它是相同的属性,SelStart。如果你写“SelStart = 2”,你**设置**它的值,但如果你写 pos = SelStart 你应该**获取**它的值。 (2认同)