Excel VBA 显示带有 Afterupdate 和 Change 事件的货币

标签 excel vba formatting currency

我创建了一个用户表单数据库,我可以在其中添加新数据并搜索当前项目的详细信息。

有些文本框我想要以下内容:

  1. 添加数据时,金额显示为货币。

      I already used the Afterupdate() event and it works well,
    
        Private Sub txtPOAmount_Afterupdate()
            txtPOAmount.Value = Format(txtPOAmount.Value, "$#,###.##")
        End Sub
    
  2. 我还希望它在提取数据时显示货币

     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

关于Excel VBA 显示带有 Afterupdate 和 Change 事件的货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61211934/

相关文章:

python - pandas 将列与另一列合并

python - 使用openpyxl向下计算公式

vba - 使用用户表单在一行中搜索和更新值

vba - 使用 VBA 在 MS Project 中选择任务

vba - 命令按钮不起作用

excel - VBA 宏将错误的数据复制到单元格

JAVA SimpleFormatter,无法设置正则表达式

vba - 使用 (i,j) 格式对范围进行平均

text - UIButton 中的文本下划线

c# - 我如何在 c# 中格式化 07/03/2012 到 2012 年 3 月 7 日