r.o*_*ook 4 excel controls vba userform uppercase
假设我在EXCEL VBA UserForm中有以下代码:
Private Sub TextBox_Change()
TextBox.Value = UCase(TextBox.Value)
OtherText.Value = "FOO " & TextBox.value & " BAR"
End Sub
Run Code Online (Sandbox Code Playgroud)
它强制文本框始终为大写,并且当用户从末尾键入时效果很好.
然而,我说我得到了一个文本"HELLO WORLD",我想在其间插入 "CRUEL "(由用户手动输入),一旦我输入C,光标将跳转到后面D,最终结果将成为"HELLO CWORLDRUEL "(如果我盲目输入).
如果我有大写锁定,光标位置不会改变,但它会破坏代码的目的......并且使用小写字符它总是将光标踢到最后.
有没有办法保持这些类型的强制案例更改的光标位置?
我曾考虑使用_Exit()方法,但我确实希望每次更改都保持值OtherText和TextBox值大写.否则OtherText将全部为大写,而TextBox在_Exit()执行之前仍然是小写,它看起来......不合需要.
尝试使用其他事件,例如:
Private Sub TextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii >= 97 And KeyAscii <= 122 Then 'a-z
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End If
End Sub
Run Code Online (Sandbox Code Playgroud)