ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 这段代码我不知道用哪个表达式,请教.

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:12 | 显示全部楼层 |阅读模式
Sub yy()
    Dim RegEx, Myr&, x&, a, b, bb
    Set RegEx = CreateObject("VBSCRIPT.REGEXP") 'RegEx为建立正则表达式
    RegEx.Global = True '设置全局可用
    RegEx.Pattern = "[^!-~]" '去汉字样式
    Myr = [a65536].End(xlUp).Row
    For x = 1 To Myr
        a = Cells(x, 1)
        b = RegEx.Replace(a, "*") '把匹配样式的字符用*替换
        bb = Replace(b, "*", "")  '把*用""替换
        Cells(x, 2) = bb
    Next x
    Set RegEx = Nothing
End Sub

Book1.rar

9.46 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:19 | 显示全部楼层
正则方面知识还是空白,留个记号

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:20 | 显示全部楼层
Function regexptest(patrn, strng)
  Dim regex, match, matches                         ' 建立变量
  Set regex = CreateObject("VBScript.RegExp")       ' 建立正则表达式
  regex.Pattern = patrn                             ' 设置模式
  regex.ignorecase = True                           ' 设置是否区分字符大小写
  regex.Global = True                               ' 设置全局可用性
    regexptest = regex.Replace(strng, "")
      
   
End Function

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
效果:
标题       
4914059康明斯调节杆        4914059
3820320康明斯旁通阀柱塞        3820320
3251635康明斯接头        3251635
3326142康明斯张紧轮支架        3326142
S  1031康明斯弯管接头        S1031
3022184康明斯防护罩        3022184
柴油发电机,康明斯6BT发动机JFZ130-4发电机        ,6BTJFZ130-4
康明斯6BT发动机JFZ130-4充电发电机        6BTJFZ130-4
柴油发电机,康明斯6BT发动机JFZ130-4充电机        ,6BTJFZ130-4
陆用4BT3.9进口康明斯发动机维修        4BT3.9
4061156康明斯支架        4061156
3041116康明斯机油尺        3041116
1000962康明斯放油接头        1000962
136983康明斯弯管接头        136983
3633045康明斯管路接头        3633045
3655924康明斯防尘盖        3655924
供应油田用4BT原装康明斯柴油机大修        4BT
3627702康明斯T型接头        3627702T
sq0122(柜台)        sq0122
CH-01黑橡        CH-01

把这一列的数字和字母提出来

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub yy()
Dim RegEx, Myr&, x&, a, b, bb
Set RegEx = CreateObject("VBSCRIPT.REGEXP")
RegEx.Global = True
RegEx.Pattern = "[\u4e00-\u9fff\,()]+"
Myr = [a65536].End(xlUp).Row
For x = 1 To Myr
a = Cells(x, 1)
Cells(x, 2) = RegEx.Replace(a, "")
Next x
Set RegEx = Nothing
End Sub

[ 本帖最后由 Zamyi 于 2011-3-25 16:29 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可以再改一下的。
Sub yy()
    Dim RegEx, Myr&, x&, a, b, bb
    Set RegEx = CreateObject("VBSCRIPT.REGEXP") 'RegEx为建立正则表达式
    RegEx.Global = True '设置全局可用
    RegEx.Pattern = "[^A-Za-z0-9]" '"[^!-~]" '去汉字样式
    Myr = [a65536].End(xlUp).Row
    For x = 1 To Myr
        a = Cells(x, 1)
        b = RegEx.Replace(a, "") '把匹配样式的字符用*替换
        Cells(x, 2) = b
    Next x
    Set RegEx = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如果需要的结果是汉字,不留字母,数字
那么用下面的:
Sub yy()
    Dim RegEx, Myr&, x&, a, b, bb
    Set RegEx = CreateObject("VBSCRIPT.REGEXP") 'RegEx为建立正则表达式
    RegEx.Global = True '设置全局可用
    RegEx.Pattern = "[A-Za-z0-9-\s]" '"[^!-~]" '去汉字样式
    Myr = [a65536].End(xlUp).Row
    For x = 1 To Myr
        a = Cells(x, 1)
        b = RegEx.Replace(a, "") '把匹配样式的字符用*替换
        Cells(x, 2) = b
    Next x
    Set RegEx = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:43 | 显示全部楼层
简些:
Sub yy()
With CreateObject("VBSCRIPT.REGEXP")
.Global = True
.Pattern = "[^!-+--~]+"
For Each x In Range("a2", [a65536].End(3))
x(1, 2) = Trim(.Replace(x, " "))
Next x
End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-25 16:50 | 显示全部楼层

回复 4楼 wanghaiqn1957 的帖子

您给上传一个附件我看看吧 谢谢

TA的精华主题

TA的得分主题

发表于 2011-3-25 16:53 | 显示全部楼层

回复 5楼 Zamyi 的帖子

Zamyi兄换头像了。 美女变小帅哥?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-26 20:28 , Processed in 0.048943 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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