要求太高了,还要把光标定位到文本中的一个具体位置。恐怕不太容易实现。让它在输入错误的时候弹出对话框报错再清空对话框不是更好写吗?
dim NumDot as integer
for i=1 to Len(txtInput.text)
select case Mid(txtInput.text, i, 1)
case "1","2" ,"3","4","5","6","7","8","9","0","."
if Mid(txtInput.text, i, 1)="." then
NumDot=NumDot+1
if NumDot>1 or (i=1 or i=Len(txtInput.text)) then
Msgbox "输入有误!", vbOKOnly, "提示"
txtInput.text=""
txtInput.SetFocus
NumDot=0
end if
else
if i=Len(txtInput.text) then
txtInput_2.SetFocus'焦点到下了个文本框
end if
end if
case else
Msgbox "输入有误!", vbOKOnly, "提示"
txtInput.text=""
txtInput.SetFocus
NumDot=0
end select
next i
另外,如果多个文框都有小数点问题,可以把NumDot做成数组,分别监视各个文本框的小数点数量