2015-02-08 107 views
3

標題主要解釋我需要什麼。我有一個文本框,我使用_keypress過程不斷檢查數據有效性。如果用戶輸入(,那麼我通過輸入右括號)自動填充它們。結果是(),並且光標位於文本框的末尾。 我的問題是,我如何將光標向後推一步放在兩個括號之間?謝謝,VBA - 如何在文本框中的特定位置設置光標?

編輯:測試場景:

Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 

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

End Sub 

希望這使得它更清晰,

回答

4

使用TextBox對象的SelStart屬性:

Me.TextBox1.Value = "()" 
Me.TextBox1.SelStart = 1 

注:SelStart=1指光標將位於第一個元素之後,即「(」。因此,你應該玩你的字符串,以瞭解你想要的屬性值應該是多少。

+0

這是一個很好的開始!我會從那裏加強它!謝謝, – Grendizer 2015-02-08 22:05:46

+0

還有一個問題,有沒有辦法返回光標所在的位置編號? – Grendizer 2015-02-08 22:07:55

+0

您將需要打電話給Windows API檢查https://support.microsoft.com/kb/152969/en-us?wa=wsignin1.0 – Jeanno 2015-02-08 22:14:47

相關問題