在 Excel 中故河,通過(guò)對(duì)單元格進(jìn)行格式化,我們可以為單元格中存儲(chǔ)的數(shù)字加上貨幣符號(hào)浩嫌。但如何判斷單元格中顯示的哪種貨幣呢杂拨?由于單元格的內(nèi)容是以數(shù)字形式存儲(chǔ)的专普,我們無(wú)法通過(guò)直接截取單元格內(nèi)容來(lái)判斷悯衬。下面我們將通過(guò)示例來(lái)分享幾種方法。
方法一:
這種方法通過(guò) Excel 中的 cell 函數(shù)進(jìn)行判斷筋粗,適用于比較簡(jiǎn)單的情況策橘。
cell 函數(shù)的 format 參數(shù),對(duì)每種單元格貨幣格式返回一個(gè)特定值娜亿,通過(guò)返回值即可判斷單元格中的貨幣格式丽已。如圖中所示,當(dāng)單元格存儲(chǔ)的是人民幣格式時(shí)买决,cell 的返回值是 C2- 或 C2沛婴,而美元返回的則是 ,2. 如果格式較少時(shí),使用此方法比較方便督赤。
方法二:
此方法利用 VBA 中 Range 的 Text 屬性將單元格的存儲(chǔ)內(nèi)容以文本形式返回嘁灯,再通過(guò)字符串函數(shù)提取其中的貨幣符號(hào)。代碼如下:
Public Function CurrSymbol(myCell As Range) As String
Application.Volatile
CurrSymbol = Left(Trim(myCell.Text), 1) ' Trim 函數(shù)用于去除 Text 屬性中的多余空格躲舌,Left 函數(shù)截取字符串中左側(cè)第一個(gè)字符
End Function
這里只是提供一種思路丑婿,如果單元格中存儲(chǔ)的貨幣比較復(fù)雜(如歐元等),還需要進(jìn)一步完善。
方法三:
此方法也是通過(guò)構(gòu)造 UDF 函數(shù)來(lái)實(shí)現(xiàn)的羹奉,但調(diào)用了 VBscript 中的 RegExp 對(duì)象秒旋,故適用范圍更廣。代碼如下:
Public Function CurrSymbol1(myCell As Range) As String
Application.Volatile
Static RE As Object
If RE Is Nothing Then Set RE = CreateObject("VBScript.RegExp")
With RE
.Global = True
.Pattern = "[0-9\-\.,\s]+" ’ 替換包括數(shù)字诀拭、逗號(hào)迁筛、空格、下劃線及小數(shù)點(diǎn)符號(hào)
CurrSymbol1 = .Replace(myCell.Text, "")
End With
End Function
關(guān)于正則表達(dá)式耕挨,可以在網(wǎng)上找一下入門教程瑰煎,了解一下。
以上就是 Excel 中提取貨幣符號(hào)的三種方法俗孝,如果你認(rèn)為有用的話酒甸,就請(qǐng)我喝杯咖啡吧!