我尝试创建自定义格式,以便将逗号显示为千位分隔符。我正在努力寻找解决方案(通过试验和错误以及搜索)带小数点如果数字有一个,但没有小数点如果数字是完整的。
这就是我想要达到的目标:
- " 123"显示为" 123"
- " 1234"显示为" 1,234"
- " 1234.5"显示为" 1,234.5"
- " 1234.56"显示为" 1,234.56"
- " 1234.567"显示为" 1,234.57"
这是我到目前为止所尝试过的,但无济于事:
Print Format(1234, "Standard") 'Displays "1,234.00"
Print Format(1234, "#,###.##") 'Displays "1,234."
这些不是理想的结果,因为它不必要地显示小数。如何在需要时访问小数点,并在没有的情况下避免使用千位分隔符?
答案 0 :(得分:2)
您可以使用Excel VBA中的自定义格式函数CustomFormat
完成此任务,如下所示:
Sub TestFormatString()
Debug.Print CustomFormat(123)
Debug.Print CustomFormat(1234)
Debug.Print CustomFormat(1234.5)
Debug.Print CustomFormat(1234.56)
Debug.Print CustomFormat(1234.567)
End Sub
Function CustomFormat(InputValue As Double) As String
CustomFormat = Format(InputValue, "#,###.##")
If (Right(CustomFormat, 1) = ".") Then
CustomFormat = Left(CustomFormat, Len(CustomFormat) - 1)
End If
End Function
以下显示的结果符合您的要求:
123
1,234
1,234.5
1,234.56
1,234.57
注意 :因为您没有指定如何显示小于1的数字(例如,0.123),请考虑两种可能的解决方案:
CustomFormat
上面显示的VBA功能会将其显示为
.12 #,###.##
"的格式掩码。到" #,##0.##
"在CustomFormat
函数中,保持其余部分完整。希望这可能会有所帮助。
答案 1 :(得分:1)