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

问题描述 投票:2回答:1

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

某些文本框,我想输入以下内容:

  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)

但是,我希望这两个选项可以同时使用。如果我想提取数据,那么我希望用户表单显示货币,并且如果我更新它,我希望它输入完整的金额。

excel vba formatting currency
1个回答
0
投票

[尝试使用TextBox1_Exit而不是Change()事件来更新它,这意味着您可以在触发事件之前自由编辑文本框字符串中的多个字符,并且不必使用箭头键向左和向右移动。您的“货币”文本框:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = Format(TextBox1.Value, "£#,##0.00")
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.