如何在 Excel 中获取货币符号
2019-08-13 本文已影响0人
lowmountain1
在 Excel 中,通过对单元格进行格式化,我们可以为单元格中存储的数字加上货币符号。但如何判断单元格中显示的哪种货币呢?由于单元格的内容是以数字形式存储的,我们无法通过直接截取单元格内容来判断。下面我们将通过示例来分享几种方法。
方法一:
这种方法通过 Excel 中的 cell 函数进行判断,适用于比较简单的情况。
cell 函数的 format 参数,对每种单元格货币格式返回一个特定值,通过返回值即可判断单元格中的货币格式。如图中所示,当单元格存储的是人民币格式时,cell 的返回值是 C2- 或 C2,而美元返回的则是 ,2. 如果格式较少时,使用此方法比较方便。
方法二:
此方法利用 VBA 中 Range 的 Text 属性将单元格的存储内容以文本形式返回,再通过字符串函数提取其中的货币符号。代码如下:
Public Function CurrSymbol(myCell As Range) As String
Application.Volatile
CurrSymbol = Left(Trim(myCell.Text), 1) ' Trim 函数用于去除 Text 属性中的多余空格,Left 函数截取字符串中左侧第一个字符
End Function
这里只是提供一种思路,如果单元格中存储的货币比较复杂(如欧元等),还需要进一步完善。
方法三:
此方法也是通过构造 UDF 函数来实现的,但调用了 VBscript 中的 RegExp 对象,故适用范围更广。代码如下:
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]+" ’ 替换包括数字、逗号、空格、下划线及小数点符号
CurrSymbol1 = .Replace(myCell.Text, "")
End With
End Function
关于正则表达式,可以在网上找一下入门教程,了解一下。
以上就是 Excel 中提取货币符号的三种方法,如果你认为有用的话,就请我喝杯咖啡吧!