VBA - Wie man den Cursor in eine Bestimmte Position in einer Textbox?
Den Titel meist erklärt, was, die ich brauche. Ich habe eine textbox, die ich prüfen laufend für die Validität der Daten mit der _keypress
Verfahren. Wenn der Benutzer (
dann habe ich auto-füllen Sie es für Sie durch Eingabe der schließenden Klammer )
. Das Ergebnis ist ()
und der cursor an das Ende der textbox.
Meine Frage ist, wie kann ich push den cursor einen Schritt zurück, steckte es zwischen die beiden Klammern? Danke,
Edit: Test-Szenario:
Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc("(") Then
txtInput.value = txtInput.value & "()"
KeyAscii = 0
End If
End Sub
Hoffe, das macht es klarer,
InformationsquelleAutor Grendizer | 2015-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
SelStart
Eigenschaft desTextBox
Objekt:Hinweis:
SelStart=1
bedeutet, dass der cursor wird nach dem ersten element, also "(
". Sie sollten daher spielen Sie mit Ihrem string, um zu verstehen, was Ihre gewünschten Wert vonSelStart
Eigenschaft sein sollte.Noch eine Frage, gibt es einen Weg, um wieder die position Nummer, wo der cursor ist?
Sie müssen einen Aufruf von Windows-API-check support.microsoft.com/kb/152969/en-us?wa=wsignin1.0
Muss ich die Rückgabe der position des Cursors in eine textbox?
Ich denke, es ist die gleiche Eigenschaft SelStart. Wenn Sie schreiben "SelStart = 2" Sie sind Parameter seinen Wert, aber wenn Sie schreiben pos = SelStart sollten Sie immer seinen Wert.
InformationsquelleAutor Matteo NNZ