![](/img/trans.png)
[英]How to add a '₹' into a cell using excel vba (format a cell with a Currency symbol '₹' )
[英]Format a cell as arbitrary currency regardless of locale, using VBA
這真的很煩我,因為它的工作方式似乎很不合邏輯。
我有一個宏來格式化單元格作為貨幣使用一些代碼來獲得貨幣符號。
這是涉及的代碼:
Dim sym As String
sym = reportConstants(ISOcode)
'Just use the ISO code if there isn't a symbol available
If sym = "" Then
sym = ISOcode
End If
With range(.Offset(0, 3), .Offset(3, 3))
.NumberFormat = sym & "#,##0;(" & sym & "#,##0)"
Debug.Print sym & "#,##0;(" & sym & "#,##0)"
End With
reportConstants
是一個字典對象,貨幣符號定義為字符串。 例如reportConstants("USD") = "$"
。 這是在宏的早期定義的。
當宏運行時,它獲取ISO代碼,然后應使用相應的貨幣符號格式化單元格。
當我在一個實例中運行它時,ISO代碼是“USD” - 因此sym
被定義為"$"
- 但它仍然用井號(£)格式化單元格。 當我debug.print
格式單元格字符串時,它顯示$#,##0;($#,##0)
所以,只要我的語法正確,就應該在單元格中使用美元符號。 但它使用的是£符號。 (我正在運行英國版的excel,因此它可能默認為£-sign,但為什么呢?)
任何幫助非常感謝。
我剛剛錄制了一個宏來將格式設置為$ xx.xx並創建了這個: [$$-409]#,##0.00
。 看起來-409將貨幣本地化到特定國家; 它沒有它工作 - 嘗試將你的更改為.NumberFormat = "[$" & sym & "]#,##0.00"
Btw猜測我在發布后有點讀了你的問題;)Excel受到計算機區域設置的影響,因為貨幣,語言,日期...使用numberformat可以強制它保留你需要的標志。 如果是四舍五入的問題,您可以嘗試:在Excel 2010上,轉到文件 - 選項 - 高級,向下滾動到“計算此工作簿時”,然后單擊“顯示設置精度”並單擊“確定”。
試試這個:給出你的值是數字/整數/小數....
Range("a2").Style = "Currency"
或者你可以使用格式:
Format(value, "Currency")
Format(Range(a2).value, "Currency")
參考文獻:
http://www.mrexcel.com/forum/excel-questions/439331-displaying-currency-based-regional-settings.html
http://www.addictivetips.com/microsoft-office/excel-2010-currency-values/
(PS:我在手機上,你可以嘗試這兩個鏈接)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.