【问题标题】:EXCEL VBA Currency format in TextBox1TextBox1中的EXCEL VBA货币格式
【发布时间】:2013-01-04 14:16:59
【问题描述】:

我想用以下格式格式化TextBox1 中的值:

  1. 不带括号的马来西亚林吉特货币 (RM)
  2. 将其设为小数点后 2 位,例如RM 10.00
  3. 使格式出现在TextBox1 中,即使用户没有输入任何值,例如RM 0.00
  4. 只允许用户输入整数,例如当用户在TextBox1 中输入 1234 时,TextBox1 的值将从 RM 0.00 变为 RM 12.34 用户不必点击“.”,整数只会向前移动,例如RM 0.01 -> RM 0.12 -> RM 1.23 -> RM 12.34 用户在TextBox1中按1234。

如果我的问题的其他地方有任何误解,请告诉我,我会更正。提前谢谢大家。

【问题讨论】:

    标签: excel vba format currency


    【解决方案1】:

    第一:你的数字格式很简单。打开数字格式对话框并使用此字符串创建自定义格式:

    “RM”#,#0.00

    第二:要将空单元格显示为零,您有两种选择。

    1. 如果单元格是其他地方的方程式或数据的结果,您可以使用 一个公式;例如,=if(A1="",0,A1) 这将采用 A1 的值 除非它是空的,在这种情况下它将是 0。
    2. 您还可以将工作表设置为在下面显示所有零值 文件选项卡中的选项。

    第三次(也是最后一次):就小数的自动放置而言,这并不少见。只需按照本教程中的步骤操作:

    How to insert decimal points automatically in Excel

    我希望这会有所帮助,祝你好运!

    编辑:

    乍一看,我认为您需要有关单元格格式的帮助,但您需要有关 VBA 用户窗体和/或工作表本身中的文本框控件的帮助。完成此任务所需的工具是输入掩码。但是,据我了解,目前 VBA 用户表单中没有对此的内置支持。当用户更改或退出框时,您可以构建代码来执行此操作。

    我会推荐在他们退出时首先验证输入以确认它是数字的代码,然后更改值以匹配所需的格式。这是一个例子:

    Private Sub myTextbox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    
    Dim myVal As String
    
    myVal = Trim(myTextbox.Value)
    
    If myVal = "" Then Exit Sub 'Ignore this subroutine if the box is empty.
    
    If IsNumeric(myVal) = False Then 'If the input is not a number, ask for correct input.
        MsgBox "Please enter a number value."
        myTextbox.SetFocus
        Exit Sub
    ElseIf InStr(1, myVal, ".", vbTextCompare) > 0 Then     'If the input includes decimal, use it.
        myTextbox.Value = "RM " & Format(myVal, "#,##0.00")
    ElseIf InStr(1, myVal, ".", vbTextCompare) = 0 Then     'If the input doesn't include decimal, enter one and divide by 100.
        myTextbox.Value = "RM " & (Format(myVal, "#,##0.00") / 100)
    End If
    
    
    End Sub
    

    如果你想变得更花哨,你可以先在输入中搜索“RM”。这将确保在用户输入诸如“RM 123.45”之类的值时不会弹出“无效输入”消息框。不幸的是,我目前没有时间为您编写代码。

    【讨论】:

    • 我想直接在 TextBox 中格式化,而不是在单元格内。对不起,如果这让你感到困惑。
    • 我想知道这是否可能。感谢您的努力@Lopside 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多