excel - 使用 Excel VBA 在文本框中检测(或注册)点为逗号
问题描述
我有一个使用 Excel VBA 创建的用户表单,用户在其中输入一些数据,然后使用按钮将其保存到工作表中。用户需要填写的一些字段应该只具有数值。为了只允许这些文本框中的数字,我使用以下代码:
Private Sub txtShift1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Debug.Print KeyAscii
If KeyAscii >= 48 And KeyAscii <= 57 Then
Debug.Print "number"
Else
Debug.Print "other"
KeyAscii = 0
End If
End Sub
但是,我还想做一项调整。用户通常使用数字键盘填写这些字段,其中有一个点作为小数分隔符。在我所在的地区,逗号用作小数分隔符,我无法在将要使用的每台计算机上更改该配置。所以,我正在寻找一段代码,在输入特定文本字段时将点字符注册为逗号。类似于 Windows 10 计算器的功能。如果您使用逗号作为小数分隔符并在使用时在数字小键盘中键入点,您会得到一个逗号而不是点,以便轻松进行计算。
我想这可以使用相同的KeyAscii
属性来实现,但我无法弄清楚。任何建议将不胜感激。
解决方案
尝试Application.DecimalSeparator = ","
推荐阅读
- javascript - 通过单击特定按钮更改 div 背景图像
- makefile - OCaml:如何编译/制作文件扩展名为 .ml.x 的程序?
- spring - 本机 JPA 查询的转换类型错误
- node.js - 从表单获取用户输入并通过 id 更新它 - mongodb 和 node.js
- c++ - 解释“通过 const XXX 忽略限定符”?
- python - 通过装饰器注入类属性
- git - 忽略具有 .git 子目录的目录?
- spring - 当 WAR 文件部署在 Tomcat 上时,应该使用什么路径来定位 SQL 语句中使用的 CSV 文件(Load data local infile)
- docker - 构建 docker 固件 esp32 错误:“s”的未知选项
- python - 无法在 Python 3.6 中使用 _pickle 加载 Python 2.x .dat 文件