VBA - Comment mettre le Curseur à une Position Spécifique dans une zone de texte?
Le titre explique en grande partie ce dont j'ai besoin. J'ai une zone de texte que j'ai continuellement examiner la validité des données à l'aide de la _keypress
procédure. Si l'utilisateur entre (
puis j'ai l'auto-remplissage pour en tapant la parenthèse fermante )
. Le résultat est ()
et le curseur est à la fin de la zone de texte.
Ma question est, comment puis-je pousser le curseur en arrière d'une étape de le mettre entre les deux parenthèses? Merci,
Edit: scénario de Test:
Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc("(") Then
txtInput.value = txtInput.value & "()"
KeyAscii = 0
End If
End Sub
Espère que cela le rend plus clair,
OriginalL'auteur Grendizer | 2015-02-08
Vous devez vous connecter pour publier un commentaire.
Utiliser le
SelStart
propriété de laTextBox
objet:Remarque:
SelStart=1
signifie que le curseur sera après le premier élément, c'est à dire "(
". Vous devez donc jouer avec votre chaîne de comprendre ce que la valeur souhaitée deSelStart
la propriété devrait être.Encore une question, est-il une manière de renvoyer le numéro du poste où se trouve le curseur?
Vous aurez besoin de faire un appel à l'API de Windows case support.microsoft.com/kb/152969/en-us?wa=wsignin1.0
Ai-je besoin pour retourner à la position du curseur dans un zone de texte?
Je suppose que c'est la même propriété, SelStart. Si vous écrivez "SelStart = 2" tu es configuration sa valeur, mais si vous écrivez pos = SelStart vous devez être pour sa valeur.
OriginalL'auteur Matteo NNZ