格式化类模块中的值

时间:2015-06-29 18:42:24

标签: excel vba class

我有以下代码

Dim W As New WordC ' being WordC the name of my clase
W.Revenue=101545

我想将其格式化为货币,但我希望它在类模块中完成。我怎么能用属性做到这一点?

我想在类模块中的某个地方使用类似代码

If Revenue > 1000000 Then
    Revenue = Format(Revenue / 1000000, "Currency") & "M"
Else
    Revenue = Format(Revenue / 1000, "Currency") & "k"
End If

只有在课程模块

中才需要格式化的收入

1 个答案:

答案 0 :(得分:0)

您可以使用Property LetProperty Get来执行此操作:

Clas代码1:这会将revenue保留为整数,并且仅在您使用W.RevenueAsString获取时将其格式化。

Dim revenue As Integer

Property Get RevenueAsString() As String
    If revenue > 1000000 Then
        RevenueAsString = Format(revenue / 1000000, "Currency") & "M"
    Else
        RevenueAsString = Format(revenue / 1000, "Currency") & "k"
    End If

    Return
End Property

或者您可以将其设置为字符串:

Private RevenueInternal As String

Property Get Revenue() As String

    Revenue = RevenueInternal
    Return
End Property


Property Let Revenue(value As Integer)
    If value > 1000000 Then
        RevenueInternal = Format(value / 1000000, "Currency") & "M"
    Else
        RevenueInternal = Format(value / 1000, "Currency") & "k"
    End If
End Property

我更喜欢第一个选项,因为您仍然将原始值存储为revenue变量中的整数。然后,您可以使用W.revenue或使用W.RevenueAsString格式化值来处理实际值。