String 如何将变量格式化为字符串中的货币
以下所有操作都发生在If语句中 我有一个变量,差,是两个货币值相减的结果 然后我有另一个变量Message,如下所示:String 如何将变量格式化为字符串中的货币,string,vba,variables,format,currency,String,Vba,Variables,Format,Currency,以下所有操作都发生在If语句中 我有一个变量,差,是两个货币值相减的结果 然后我有另一个变量Message,如下所示: If AssessedValue < ProposedValue Then Difference = Format(ProposedValue - AssessedValue, "Currency") Message = "Average value is " & Difference & " more than t
If AssessedValue < ProposedValue Then
Difference = Format(ProposedValue - AssessedValue, "Currency")
Message = "Average value is " & Difference & " more than the current
appraised value. Do NOT recommend negotiations."
Else
Difference = Format(AssessedValue - ProposedValue, "Currency")
Message = "Average value is " & Difference & " less than the current
appraised value. Recommend negotiations."
End If
如果评估值<建议值,则
差异=格式(建议值-评估值,“货币”)
Message=“平均值比当前值大”&差异&”
评估价值。不建议协商。”
其他的
差异=格式(评估值-建议值,“货币”)
Message=“平均值小于当前值”&差异&”
评估价值。建议谈判。”
如果结束
我的问题是,在显示的消息中,差异不会显示为货币,而只是一个未格式化的数字,而不是货币(下面的消息示例)
平均值比当前评估值高21587。不要
建议谈判
在本例中,如何使21587在消息中显示为$21587.00
提前感谢您对此问题的帮助。
Kirk有几种方法可以解决您的问题:
格式“Currency”
设置差异的格式,例如
Message = "Average value is " & Format(Difference, "Currency") & " more than the current appraised value. Do NOT recommend negotiations."
差异
声明为字符串
而不是数字类型。(我猜您当前已将其声明为货币
类型。)
这将确保格式(ProposedValue-AssessedValue,“Currency”)
的结果不会转换回数值,以便存储在差异
变量中您能否将差异格式化为一个带有2个小数点的数字,并将$添加到消息中的文本中?只需使用
格式(差异,“货币”)
?或者将差异
更改为字符串
数据类型,而不是数字数据类型?(您发布的代码没有显示它是如何声明的,但我假设它是数字的,否则您不会有问题。)您的问题应该包括差异,评估值和建议值变量的声明(Dim
语句),因此,回答者不必猜测重要的上下文。很抱歉没有包括我的声明,差异是一个很长的数据类型,因为我的一些差异可能是数百万美元的金额。下面YowE3K回答的方法1解决了我的问题。再次感谢大家的投入!如果Difference
被声明为Long
,您需要意识到它永远不会包含美分。如果需要美分,你应该将其声明为货币
(或者如果消息是你唯一使用它的地方,则声明为字符串
。@Mat'smugh当我第一次发布我的原始评论时,我以为我在教OP,但后来我注意到他们已经在使用它设置差异
,问题几乎可以肯定的是,Difference
是一种Currency
类型。非常感谢!我使用了方法1,它解决了我的问题!
Dim Difference As String