第一:你的数字格式很简单。打开数字格式对话框并使用此字符串创建自定义格式:
"RM"#,#0.00
第二:要将空单元格显示为零,您有两个选择。
- 如果单元格是其他地方的方程式或数据的结果,则可以使用公式;例如,=if(A1="",0,A1) 这将采用 A1 的值,除非它为空,在这种情况下它将为 0。
- 您还可以将工作表设置为在文件选项卡的选项下显示所有零值。
第三(也是最后):就小数的自动放置而言,这并不少见。只需按照本教程中的步骤操作:
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”之类的值时不会弹出“无效输入”消息框。不幸的是,我目前没有时间为您编写该代码。