ExcelVBA_VBScript实例集锦.pdf
《ExcelVBA_VBScript实例集锦.pdf》由会员分享,可在线阅读,更多相关《ExcelVBA_VBScript实例集锦.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1,统一字符(Pattern、Replace)http:/ 统一字符.xls Sub yyOOBIRD()With CreateObject(VBSCRIPT.REGEXP).Global=True For i=2 To g65536.End(xlUp).Row.Pattern=D 数字模式s1=.Replace(Cells(i,7),).Pattern=u4e00-u9fa5 汉字模式s2=.Replace(Cells(i,7),)Cells(i,9)=s1&.&s2 Next i End With End Sub Sub yy()by:蓝桥Dim Myr%,x%,aa$Dim temp$,
2、getelement1$,getelement2$Myr=g65536.End(xlUp).Row For x=2 To Myr aa=Cells(x,7)For y=1 To Len(aa)temp=Mid(aa,y,1)If temp Like 0-9 Then getelement1=getelement1&temp数字模式If Asc(temp)0 Then getelement2=getelement2&temp汉字模式Next y Cells(x,9)=getelement1&.&getelement2 getelement1=getelement2=Next x End Sub
3、自定义函数n=1 数字;n=2 中文;n=3 字母Function yy(aa,n)Dim temp$,getelement1$,y&For y=1 To Len(aa)temp=Mid(aa,y,1)Select Case n Case 1 If temp Like 0-9 Then getelement1=getelement1&temp 数字模式Case 2 If Asc(temp)1 Then Exit Sub If Target.Column 5 Then Exit Sub Myr=e65536.End(xlUp).Row Range(E3:E&Myr).Sort Range(E3)
4、,1 With CreateObject(VBSCRIPT.REGEXP).Global=True.Pattern=s For i=Myr To 3 Step-1 s1=.Replace(Cells(i,5),)If Cells(i,5)=Or s1=Then Cells(i,5).Delete Shift:=xlUp ElseIf Cells(i,5)=0 Then Application.EnableEvents=False Cells(i,5).Cut Myr=e65536.End(xlUp).Row+1 Cells(Myr,5).Select ActiveSheet.Paste Cel
5、ls(i,5).Select Selection.Delete Shift:=xlUp Application.EnableEvents=True End If Next End With End Sub 6,去除/*%http:/ 分隔符拆分0411.xls 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=2 To Myr a
6、=Cells(x,1)b=RegEx.Replace(a,|)把匹配样式的字符用|替换bb=Split(b,|)Cells(x,2).Resize(1,UBound(bb)+1)=bb Next x Set RegEx=Nothing End Sub 7,搜索(Match 对象)by:Windows脚本技术帮助文件每个 Match 对象提供了被正则表达式搜索找到的字符串的访问、字符串的长度,以及找到匹配的索引位置等。Function RegExpTest(patrn,strng)Dim regEx,Match,Matches 建立变量。Set regEx=New RegExp 建立正则表达式。
7、regEx.Pattern=patrn 设置模式。regEx.IgnoreCase=True 设置是否区分大小写。regEx.Global=True 设置全局可用性。Set Matches=regEx.Execute(strng)执行搜索。For Each Match in Matches 遍历 Matches 集合。RetStr=RetStr&匹配&I&位于 RetStr=RetStr&Match.FirstIndex&.Match Value is RetStr=RetStr&Match.Value&.&vbCRLF Next RegExpTest=RetStr End Function
8、MsgBox(RegExpTest(is.,IS1 is2 IS3 is4)8,取数和取字符串 n=1 时取数;n=2 时取字符串Function ss(rng,n)Dim RegEx,b,bb Set RegEx=CreateObject(VBSCRIPT.REGEXP)RegEx为建立正则表达式RegEx.Global=True 设置全局可用RegEx.Pattern=D b=RegEx.Replace(rng,|)把匹配样式的字符用|替换If n=1 Then ss=Replace(b,|,)数字ElseIf n=2 Then bb=Replace(b,|,)ss=Left(rng,Le
9、n(rng)-Len(bb)字符串End If Set RegEx=Nothing End Function 9,取数字表达式 2011-8-31 http:/ Sub Macro1()Dim arr,i&,y arr=Range(a1:a&Range(a65536).End(xlUp).Row)With CreateObject(vbscript.regexp).Global=True.Pattern=(0-9.+*)+0-9.+For i=1 To UBound(arr)y=arr(i,1)If.Execute(y).Count 0 Then arr(i,1)=.Execute(y)(0)
10、Else:arr(i,1)=End If Next End With Range(b1).Resize(UBound(arr),1)=arr End Sub 10,取数字分列 2011-9-19 by:jiminyanyan http:/ Sub Reg()Dim oReg As Object Dim oMatches As Object Dim oMatch As Object Dim i As Integer Set oReg=CreateObject(vbscript.regexp)With oReg.Global=True 设置模式匹配数字.Pattern=d+For i=1 To R
11、ange(a65535).End(xlUp).Row 先判断是否匹配成功,成功则继续If.test(Cells(i,1)Then 获得匹配结果的集合Set oMatches=.Execute(Cells(i,1)m=4 For Each oMatch In oMatches Cells(i,m)=oMatch m=m+1 Next End If Next End With End Sub 11,查找电子邮件地址(SubMatches集合)by:Windows脚本技术帮助文件 SubMatches 集合包含了单个的子匹配字符串Function SubMatchTest(inpStr)Dim oR
12、e,oMatch,oMatches Set oRe=New RegExp 查找一个电子邮件地址(不是一个理想的RegExp)oRe.Pattern=(w+)(w+).(w+)得到Matches 集合Set oMatches=oRe.Execute(inpStr)得到Matches 集合中的第一项Set oMatch=oMatches(0)创建结果字符串。Match 对象是完整匹配 retStr=电子邮件地址是:&oMatch&vbNewLine 得到地址的子匹配部分。retStr=retStr&电子邮件别名是:&oMatch.SubMatches(0)dragon retStr=retStr&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ExcelVBA_VBScript 实例 集锦
限制150内