[英]How to do conditional formatting of a label in Excel VBA
當數據以千百萬計時,我需要在“$K”和“$M”中有條件地格式化標簽值。 我一直在使用以下格式,它們分別在 Excel 單元格 ($#,##0.0,"K") 和 ($#,##0.00,,"M") 中都可以正常工作,這在我使用時不起作用使用帶有以下代碼的 VBA 格式化標簽標題:
lblInvestmentValue.Caption = Format(CStr(dblInvestmentVal), "[>=1000000] $#,##0.0,,""M"";[>0] $#,##0.0, ""K"";General")
在使用它時,我得到以下輸出
dblInvestmentVal Caption Expected Caption
812 $812.0M $812
8280119 $8,280,119.0M $8.29M
91281 $12,367.0M $12.4K
任何指針
您可以使用 IIF 語句。
lblInventmentValue.Caption = IIF(Abs(dblInvestmentVal) >= 1000000, Format(dblInvestmentVal / 1000000, "$#,##0.0,,""M"""),IIF(Abs(dblInvestmentVal) >= 1000, Format(dblInvestmentVal / 1000, "$#,##0.0,,""K"""),Format(dblInvestmentVal, "$#,##0.0")))
語句使用 Abs(dblInventmentVal) 也正確格式化負數。
我不確定format
命令是否支持這種條件數字格式,但您可以輕松地將其替換為:
Function ConditionalFormatNumber(n As Double) As String
If n > 1000000 Then
ConditionalFormatNumber = Format(n / 1000000, "$#,##0.00,,""M""")
ElseIf n > 1000 Then
ConditionalFormatNumber = Format(n / 1000, "$#,##0.00, ""K""")
Else
ConditionalFormatNumber = Format(n, "$#,##0.0")
End If
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.