excel窗体文本框要求只能输入数值,VBA代码如何写?

我是一名银行工作都,现正在制作一个实用数据处理小程序,制作后在调试过程中出现,若当前输入法为中文,若打小数点即变为句号,以至计算错误,诚请各位好友给予帮助,具体要求如下:
1、文本框内最多只能输入两位小数;
2、无论系统当前输入法为中文、英文、全角或是半角状态,不用切换输入法均能正常输入数值,且小数不变为句号。
如将UserForm1 中TextBox1 中数据写入sheet2 的“A1”单元,该代码具体怎么写。

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 13 Then

    TextBox1 = Format(Replace(TextBox1, "。", "."), "0.00")

    [Sheet2].Range("A1").Value = TextBox1

End If

End Sub 

他是要纠正错误,而非查出错误

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-22
Private Sub CommandButton1_Click()
Dim i As Double
i = Format(Replace(TextBox1.Value, "。", "."), "0.00")
Sheet2.Range("A1").Value = i
End Sub
此代码不管你textbox1输入的是句号还是点,都将变成点。四舍五入保留两位小数。
第2个回答  2011-07-22
我想应该不只是"。"号, 别的也有可能,所以最好是判断是否是数值
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
if isnumeric(TextBox1.text) then
Range("A1").Value = TextBox1.text
end if
End If

End Sub
相似回答