【问题标题】:VBA Text Box displaying Currency显示货币的 VBA 文本框
【发布时间】:2017-06-05 13:38:48
【问题描述】:

我有一个带有许多文本框的表单供用户输入(这是在用户表单中,不在电子表格中)。我有几个与货币相关的框,当用户在框中输入他们的标准时,我需要它们显示逗号和小数点。到目前为止,我在网上找到了一堆相同的公式,但是当我在框中输入我的数字时,它会显示 4.00(如果我先打 4),之后我可以更改的是第二个 0。这是我看到的类似内容在线:

textbox1 = format(textbox1, "$#,##0.00")

也看到了一些 cDbl

无论我尝试什么,它都不会让我输入超过我输入的第一个数字的任何内容。我需要帮助。谢谢!

【问题讨论】:

  • 您能向我们展示更多您的代码吗?如果您将 textbox1 = format(textbox1, "$#,##0.00) 放入控件的更改事件中,我不知道。

标签: excel validation vba userform


【解决方案1】:

用户输入数据时的格式化变得非常棘手。输入完成后格式化可能会更好。
如果条目被视为无效,也可以验证条目并恢复旧值

Dim TextBox1oldValue As String

Private Sub TextBox1_AfterUpdate()
    If IsNumeric(TextBox1) Then
        TextBox1 = Format(TextBox1, "$#,##0.00")
    Else
        TextBox1 = TextBox1oldValue
    End If
End Sub

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If IsNumeric(TextBox1) Then
        TextBox1oldValue = Format(TextBox1, "$#,##0.00")
    End If
End Sub

Private Sub UserForm_Initialize()
    TextBox1oldValue = "$0.00"
    TextBox1 = "$0.00"
End Sub

【讨论】:

  • 谢谢!这项工作的关键(由于我缺乏知识)是在私人潜艇中。它不会在他们键入时添加逗号,但正如所提到的,他们可以在开箱即用后看到格式,这对我来说已经足够了(我希望)。那谢谢啦。你们太棒了!
【解决方案2】:

你需要使用TextBox Change事件,比如:

Private Sub TextBox1_Change()    
  If TextBox1 = vbNullString Then Exit Sub    
  If IsNumeric(TextBox1) Then CurrencyTransform(TextBox1)
End Sub

然后创建 CurrencyTransform 函数来修改它在 TextBox 中显示的内容。

【讨论】:

    【解决方案3】:

    试试这个...

    Private sub textbox1_AfterUpdate()
        textbox1 = format(textbox1, "$#,##0.00")
    end sub
    

    【讨论】:

      【解决方案4】:

      试试这个:

      Private Sub TextBox1_Change()
          TextBox1.Value = Format(TextBox1.Value, "$#,##0.00")
      End Sub
      

      这对我来说很好,所以它也应该对你有帮助。

      如果要进行涉及多个文本框的计算,请不要在文本框名称后使用.value。相反,在文本框的名称前使用val(,并在其后加上括号。我使用.value 得到了奇怪的结果。例如,TextBox1.Value + TextBox2.Value TextBox1.Value 等于 25 美元,TextBox2.Value 等于 75 美元,而不是 100 美元,我会得到“$25$75”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-03
        • 2015-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多