我有一个从表单输出各种数据的Sub。其中一些数据必须是货币,格式如下。
但是,尽管输出此值实际上确实为单元格设置了正确的数字格式,但内容无法正确显示。相反,它们显示为带有警告Number stored as text
的标准文本。
我确实可以选择Convert to number
,但我找不到通过VBA执行此操作的方法(录制宏时进行更改不会产生任何结果)。
如何解决此问题?感谢。
With Selection
.Value = Form.txtMonthlyCost
.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End With
答案 0 :(得分:2)
由于您的数据存储为文本,因此您必须转换VBA代码中的DataType
With Selection
.Value = CCur(valueOr(Form.txtMonthlyCost)) 'Convert text to currency Format
.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End With
.....
Public Function valueOR(val AS Variant, Optional dataType As String = "Number") AS Variant
If isNull(val) then
SELECT CASE dataType
Case "Number"
val = 0
Case "String"
val = ""
End SELECT
End If
valueOR = val
End Function
另外知道如果提交null值会抛出错误,所以我添加了代码来处理它。我使用它的扩展版本来处理大多数数据类型,但这应该足以满足您的需求。