Excel 在类模块中格式化值
我有以下代码Excel 在类模块中格式化值,excel,vba,class,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 = Fo
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
格式化的收入仅在类模块中需要您可以使用
属性Let
和属性Get
来实现:
If Revenue > 1000000 Then
Revenue = Format(Revenue / 1000000, "Currency") & "M"
Else
Revenue = Format(Revenue / 1000, "Currency") & "k"
End If
Clas代码1:这将收入
保持为一个整数,并且仅当您使用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
处理格式化值。要将其存储为货币还是字符串?如果您想将其存储为货币,那么只需这样做。但在属性中,要获取信息,需要将其转换为字符串。
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