前言:
眼前看官们对“vba数字转换为字符串的方法”大概比较关注,各位老铁们都想要知道一些“vba数字转换为字符串的方法”的相关资讯。那么小编同时在网摘上搜集了一些关于“vba数字转换为字符串的方法””的相关文章,希望你们能喜欢,小伙伴们一起来学习一下吧!在各种编程应用中,可以使用正则表达式匹配不同的字符数字,以实现提取不同类型数据的结果。
本文介绍一种提取文字中的数字并进行求和的二种方法。其实,也是一种相对普遍的筛选过程。
方法一:通过引入文件的形式进行正则表达式匹配。
引入文件:Microsoft VBScript REGular Express 5.5
需要在VBE编辑器中操作,菜单栏“工具-引用”,找到引入文件项:Microsoft VBScript REGular Express 5.5,选择。
然后新建一个模块,编辑如下过程:
编辑完成后,在工作表中进行函数引用。
如:在工作表C1中输入公式:=SumValueToText(B1)
功能就是计算B1单元格中的所有数据并进行求和,返回一个和值。
如下图所示,计算所有水果的总价。
方法二:后期绑定
后期绑定不需要进行文件引用,但需要进行创建对象。
创建代码:Set xRegExp = CreateObject("Vbscript.Regexp")
创建之后的对象 xRegExp进行匹配操作
.Pattern = "([0-9])?[.]([0-9])+|([0-9])+" '匹配字符模式
Set xMatches = .Execute(TargetRange.Text) '执行正则查找,返回所有匹配结果的集合,若未找到,则为空
如果对引用方法操作不熟悉,或者需要在不同电脑上使用建议用第二种方法。
代码:
Function SumValueInText(TargetRange As Range) As Double Dim xRegExp As Object '正则表达式对象 Dim xMatches As Object '匹配字符串集合对象 Dim xMatch As Object '匹配字符串 Set xRegExp = CreateObject("Vbscript.Regexp") With xRegExp .Global = True 'True表示匹配所有, False表示仅匹配第一个符合项 .IgnoreCase = True 'True表示不区分大小写, False表示区分大小写 .Pattern = "([0-9])?[.]([0-9])+|([0-9])+" '匹配字符模式 Set xMatches = .Execute(TargetRange.Text) '执行正则查找,返回所有匹配结果的集合,若未找到,则为空 For Each xMatch In xMatches SumValueInText = SumValueInText + CDbl(xMatch.Value) Next End With Set xRegExp = Nothing Set xMatches = NothingEnd Function
正则表达式进行筛选是十分便捷的一过程,在编程过程中,熟悉并使用这些功能可大大提高效率。
END
标签: #vba数字转换为字符串的方法 #vbs 转换字符串为数字 #正则表达式提取数字