有沒有辦法使用 VBA(或某些 excel 函式)回傳使用的自定義格式?
例如:
- 在單元格 A1 中,我的值為 100,自定義格式為 [$EUR ]#.##0,00;[Red][$EUR ]-#.##0,00
- 在單元格 A2 中,我的值為 100,自定義格式為 [$PLN ]#.##0,00;[Red][$PLN ]-#.##0,00 所以基本上,在 A1 中我有紅色EUR - 100,00在 A2 中我有紅色PLN -100,00
現在假設我只想對那些格式為 EUR 的單元格進行一些計算(在上面的示例中,這意味著單元格在其自定義格式中包含 [$EUR]。)
關于如何獲取自定義格式字串或任何其他可以幫助我通過自定義格式區分這兩個單元格的想法?
我嘗試了 Excel 公式 CELL("format";A1) 和 CELL("format";A2),但它們都回傳 ,2-
我見過很多格式化單元格的 VBA 解決方案,但我還沒有找到任何回傳使用的自定義格式的 VBA 函式(有一些方法可以回傳一些通用的東西,比如顏色,是數字等,但我沒有找到任何自定義格式回傳)。
uj5u.com熱心網友回復:
如果您想閱讀該單元格格式(自定義或非自定義),請使用:
Range("A1").NumberFormat
如果您想要一個可以從作業表本身呼叫的小型 UDF,則需要少量 VBA:
如果沒有,請創建一個新模塊。
將以下內容粘貼到其中:
Function formatting(rng As Range) As String
Application.Volatile
formatting = rng.Cells(1, 1).NumberFormat
End Function
請注意,這將始終回傳范圍內第一個單元格的格式。
然后,在任何給定的單元格中,您都可以呼叫該函式-例如
=formatting(A1)
從那里,您可以使用正常的文本操作功能,如 Left、Mid 等來定位顏色代碼或貨幣符號 - 例如
=IF(LEFT(formatting(A1),2)="[$",MID(formatting(A1),3,3),"No currency found")
會給出結果EUR
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534673.html
標籤:擅长VBA
下一篇:根據用戶輸入隱藏列
