excel - Excel VBA 显示带有 Afterupdate 和 Change 事件的货币
问题描述
我创建了一个用户表单数据库,我可以在其中添加新数据并搜索当前项目详细信息。
我想要以下某些文本框:
添加数据时,金额显示为货币。
I already used the Afterupdate() event and it works well, Private Sub txtPOAmount_Afterupdate() txtPOAmount.Value = Format(txtPOAmount.Value, "$#,###.##") End Sub
我还希望它在提取数据时显示货币
I used the Change() event, which also does the job Private Sub txtPOAmount_Change() txtPOAmount.Value = Format(txtPOAmount.Value, "$#,##0.00") End Sub
当前使用其中一种的问题:
-当我使用 Afterupdate() 事件时,如果我要提取数据库中已经存在的数据,除非我更新它,否则它不会显示货币。
- 当我只使用 Change() 事件时,它将数据显示为货币,但是当我想更新数据时,只有输入的第一个数字有效。(例如,键入 5337,它显示 $5.00)
但是,我希望这两个选项同时工作。如果我想提取数据,那么我希望用户表单显示货币,如果我更新它,我希望它输入完整的金额。
解决方案
尝试使用 TextBox1_Exit 来更新它而不是Change()
事件,这意味着您可以在事件触发之前自由编辑文本框字符串中的多个字符,并且不必使用箭头键在“货币”文本框中左右移动:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = Format(TextBox1.Value, "£#,##0.00")
End Sub
推荐阅读
- c++ - clGetProgramBuildInfo在ubuntu下不返回日志信息(Quadro P4000)
- jquery - geojson如何在openstreet地图中正确隐藏其他国家
- reactjs - 如何使 AMP 轮播与 AMP 脚本一起使用
- security - 显示 Dataverse 但限制表
- css - “背景重复”之后出现意外的速记“背景”
- python - Python:__init__() 缺少 1 个必需的位置参数:
- python - 简单的图像分割 OpenCV-Watershed
- javascript - Oracle Apex 从 ajax 请求中获取 cookie
- vba - VBA 中的 IF 条件公式 - 运行时错误“1004”
- sql - 用值更新列的 SQL 函数