ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 19383|回复: 34

[已解决] 恳求用VBA提取数字、字母、文字的代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-10-27 19:13 | 显示全部楼层 |阅读模式
本帖最后由 松儿 于 2011-10-27 19:15 编辑

截图03.png 恳求提取数字、字母、文字的函数.rar (1.83 KB, 下载次数: 77)
恳求提取数字、字母、文字的代码(本是想求个函数的,可有老师叫我来求代码,于是我就来了。请谅解我重发了。)


TA的精华主题

TA的得分主题

发表于 2011-10-27 20:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
试一下,点“提取”
恳求提取数字、字母、文字的函数.rar (7.47 KB, 下载次数: 630)

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-27 20:20 | 显示全部楼层
你想求的都有:既是代码,又是函数,呵呵——用代码编写的自定义函数,——使用正则表达式的强大功能,你可以提取任何想要的字符!

恳求提取数字、字母、文字的函数.rar

7.67 KB, 下载次数: 483

TA的精华主题

TA的得分主题

发表于 2011-10-27 20:44 | 显示全部楼层
把自定义函数中的默认的分隔符从空格改为“空”,公式再简化一下。同时,学习一下2楼用转义符的方法。

恳求提取数字、字母、文字的函数(更新).rar

7.62 KB, 下载次数: 444

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-27 21:44 | 显示全部楼层
本帖最后由 lhw78535 于 2011-10-27 21:46 编辑
cbtaja 发表于 2011-10-27 20:44
把自定义函数中的默认的分隔符从空格改为“空”,公式再简化一下。同时,学习一下2楼用转义符的方法。


你好,我是个初学者,看了您的自定义函数,觉得很不错,但有一个地方我不明白,看你的函数如下:
Function RegExpTest(patrn, strng, Optional ByVal fgf As String = "")  Dim regEx,
  上面fgf这个参数有什么用处,这个不懂,我模仿你的做了一个没用到这个参数,如下,试验一下好像也是可以的,没什么问题,fgf这个参数作什么用,能帮忙讲解一下吗?
  
Function RegExpT(patrn, strng)
  Dim regEx, Match, Matches, retStr As String         ' 建立变量。
  Set regEx = CreateObject("vbScript.regexp") 'New RegExp         ' 建立正则表达式。
  regEx.Pattern = patrn         ' 设置模式。
  regEx.IgnoreCase = True         ' 设置是否区分大小写。
  regEx.Global = True            ' 设置全局替换。
  
  Set Matches = regEx.Execute(strng)      ' 执行搜索。
  For Each Match In Matches         ' 遍历 Matches 集合。
    retStr = retStr & Match
  Next
  RegExpT = retStr
End Function

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-27 22:52 | 显示全部楼层
春色满园,谢谢各位老师,了不的。辛苦了。成功了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-27 22:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lhw78535 发表于 2011-10-27 21:44
你好,我是个初学者,看了您的自定义函数,觉得很不错,但有一个地方我不明白,看你的函数如下:
Func ...

向你学习!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-28 07:03 | 显示全部楼层
cbtaja 发表于 2011-10-27 20:20
你想求的都有:既是代码,又是函数,呵呵——用代码编写的自定义函数,——使用正则表达式的强大功能,你可 ...

早上好。代码好用。谢谢!复制函数,在其它的表中运行:出现:

截图06.png

请赐教!

TA的精华主题

TA的得分主题

发表于 2011-10-28 09:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 cbtaja 于 2011-10-28 09:18 编辑
lhw78535 发表于 2011-10-27 21:44
你好,我是个初学者,看了您的自定义函数,觉得很不错,但有一个地方我不明白,看你的函数如下:
Func ...


fgf,“分隔符”。设置一个分隔符,可以把符合条件的内容分段区分出来,比如数据中包含多个数时,提取出来时,可以得到以分隔符区分的多个数,而不是连在一起的数字。
关键在于正则表达式的灵活运用。
举例来说,比如,在我第2个附件中,对于“网上买彩2年中6700万”,用公式“=RegExpTest("\d+",$A7)”,提取的数字是26700,如果加上可选参数,用公式  =RegExpTest("\d+",$A7,"、") ,那就可以得到“2、6700”了。
对于正则表达式,我也是初学,不过,有了这个自定义函数,就可以很方便地测试需要的正则表达式是否符合要求。

TA的精华主题

TA的得分主题

发表于 2011-10-28 09:06 | 显示全部楼层
松儿 发表于 2011-10-28 07:03
早上好。代码好用。谢谢!复制函数,在其它的表中运行:出现:

你只是复制了函数,而没有复制代码。
没有代码,EXCEL是不会认识这些自定义函数的。
请按Alt+F11查看模块中的代码。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 20:44 , Processed in 0.050171 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表