我正在嘗試設置結果如下自定義數字格式:
值「22,800」變成了「歐洲:22.8 M」使用字符串變量設置.NumberFormat的值在Excel VBA
我可以使用數字格式化窗口並使用:
「Europe:」#,## 0.0,「M」; 「Europe:」 - #,## 0.0,「M」
我也可以在VBA窗口中使用
ActiveCell.NumberFormat =「」「Europe:」「#,## 0.0,」「M」 「;」「Europe:」「 - #,## 0.0,」「M」「」
這是問題:我正在運行一個循環函數,它將不同工作表中的值粘貼到摘要工作表 - 我需要區域(例如「歐洲」)顯示在號碼旁邊,但我不想爲9個區域編寫循環功能的代碼9次。
我嘗試的解決方案,在這裏我只想改變變量 「區域」 的值for each循環:
Dim region As String
Dim numformat As String
region = "Europe"
numformat = Chr(34) + Chr(34) + Chr(34) + region + ":" + Chr(34) + Chr(34) + " #,##0.0, " + Chr(34) + Chr(34) + "M" + Chr(34) + Chr(34) + "; " + Chr(34) + Chr(34) + region + ":" + Chr(34) + Chr(34) + " -#,##0.0, " + Chr(34) + Chr(34) + "M" + Chr(34) + Chr(34) + Chr(34)
Selection.NumberFormat = numformat
哪些格式的數量爲「歐洲:M#,## 0.0,;歐洲: - #,## 0.0,M「 - 它根本不顯示數字,只是這個字符串。 ?
但是,如果我用numformat在即時窗口返回字符串的值,然後複製/粘貼值,這樣
Selection.NumberFormat =「」「歐洲:」「#,## 0.0,」 「M」 「 」「 歐洲:」 「 - #,## 0.0, 」「 M 」「」
然後,我得到正確的數字格式, 「歐洲:22.8 M」
但是這並未對我沒有幫助,因爲現在區域名稱再次被硬編碼。任何人都可以幫助確定我做錯了什麼,或找出一種替代解決方案?
乾杯,
乙
區域格式存在於源數據中嗎? –
源數據採用標準數字格式進行格式化,使用千位分隔符和無小數。它需要保持這種方式。該區域是每個選項卡的名稱。 –
您可以創建一個Const String,如「Const MasterNumFormat =」「」:「」#,## 0.0,「」M「」;「」:「」 - #,## 0.0,「」M「」「 '然後使用'numformat = Replace(MasterNumFormat,「」,region)'而不是構造它。 –
PatricK