本文目录
- ExcelVBA,正则表达式,怎么替换一部分字符串
- 求教excel大神,因为数据庞大,我现在要将6-5-404这种格式替换为文字的(图中红色文字),全部替换
- excel怎么批量替换顺序: 我把所有剧情-xx的内容换成xx-剧情 -----xx是任意字, 我估计要用正则表达式把,
- Excel VBA 正则式部分替换怎么做
- Excel替换内容高级方法,相当于正则表达式
- excel vba如何使用正则表达式把字符串里字母和数字替换,字母替换为A,数字替换为0
- excel:可不可以用正则表达式来写查找与替换
ExcelVBA,正则表达式,怎么替换一部分字符串
只有两个关键字最好不用正则,IF INSTR两次就可以了,如果关键字多一点,可以使用for循环,例如:
str = “.需要处理的字符串,可以从文件、区域、数组等..“for each t in array(“中国人民“,“美国纽约“,“印度阿三“) if instr(str,t)》0 then str = t exit for end ifnext t比正则表达式简单和高效。
求教excel大神,因为数据庞大,我现在要将6-5-404这种格式替换为文字的(图中红色文字),全部替换
以下是EXCEL2007版使用VBA来实现将所有类似于“6-5-404”替换为“6栋5单元404”的解决方案
一、点击EXCEL左上角的OFFICE圆形按钮,再点击“EXCEL 选项”按钮,如下:
二、勾选上“在功能区显示‘开发工具’选项卡”的选项,并确定,如下图
三、此时,EXCEL的菜单栏中多出了“开发工具”的菜单,点击“开发工具”菜单下的“Visual Basic”工具按钮,我就可以进入到VBE界面,如下:
四、在VBE界面的“工具”菜单里,点击“引用”菜单项
五、在弹出的对话框中,找到“Microsoft VBScript Regular Expressions 5.5”,将其左边的勾选框,打上勾,确定完成引用设置。图示如下:
六、在VBE界面的“插入”菜单里,点击“模块”,将看到左侧的工程资源管理器上有显示“模块1”
七、双击“模块1”,进入代码窗口,请将以下粗体部分的代码复制粘贴到代码窗口中:
Public Sub 特殊格式转换()
’定义正则表达式对象
Dim oRegExp As Object
’定义匹配字符串集合对象
Dim oMatches As Object
’创建正则表达式
’定义要执行正则查找的文本变量
Dim sText As String
Dim rng As Range
Set oRegExp = CreateObject(“vbscript.regexp“)
With oRegExp
’设置是否匹配所有的符合项,True表示匹配所有, False表示仅匹配第一个符合项
.Global = True
’设置是否区分大小写,True表示不区分大小写, False表示区分大小写
.IgnoreCase = True
’设置要查找的字符模式
.Pattern = “(\d+)(-)(\d+)(-)(\d+)“
’对字符串执行正则查找,返回所有的查找值的集合,若未找到,则为空
For Each rng In ActiveSheet.UsedRange
sText = rng.Value
Set oMatches = .Execute(sText)
’把字符串中用正则找到的所有匹配字符替换为其它字符
If .Test(sText) Then rng.Value = .Replace(sText, “$1栋$3单元$5“)
Next
End With
Set oRegExp = Nothing
Set oMatches = Nothing
End Sub
八、显示截图如下:
点击“文件”菜单下的“关闭并返回到Microsoft Excel”菜单项,返回EXCEL界面
九、选中你想要替换内容的工作表,并在点选“开发工具”菜单下的“宏”按钮,如下图所示:
十、弹出如下对话框
十一、选中“特殊格式转换”后,按下“执行按钮”
十二、搞定了! 结果如下:
【注】本宏命令只对“数字-数字-数字”形式的文字内容进行匹配型的替换,任何其它与之不匹配的文字内容都保持原样不变。
以上是本人对“正则表达式”的现学现用,希望对你有所帮助
excel怎么批量替换顺序: 我把所有剧情-xx的内容换成xx-剧情 -----xx是任意字, 我估计要用正则表达式把,
我的方法可能有些麻烦 不过应该是可行的 分2个步骤1.选中要修改的列 ---替换:查找内容填“剧情-”替换为不填 确定,这样这一列就变成只有XX的内容了 然后在后面插入一列内容为“-剧情”2.将两列内容合并 令“XX”为A列““-剧情”为B列 方法如下:在C1单元格运用函数=CONCATENATE(A1,B1)然后拉选全部 C列得出的就是你想要的内容希望对楼主有所帮助
Excel VBA 正则式部分替换怎么做
部分替换参考如下:Public Sub TestReplace() Dim ss, re, rv ss = “我爱你abc“ Set re = New RegExp re.Pattern = “^\w+$“ re.Global = True re.IgnoreCase = True re.MultiLine = True rv = re.Replace(ss, “$1“) MsgBox rv End Su
Excel替换内容高级方法,相当于正则表达式
在H1输入以下公式,然后向下填充公式
=--MID(G1,FIND(“:“,G1)+1,FIND(“(“,G1)-FIND(“:“,G1)-1)
excel vba如何使用正则表达式把字符串里字母和数字替换,字母替换为A,数字替换为0
一张图片解决你所有问题,细看
Function 替换(检测内容) As String Dim regx As Object ’后期绑定 Set regx = CreateObject(“VBScript.RegExp“) ’后期绑定 Dim mat As Object Dim m As Object Dim 返回内容 As String Set regx = New RegExp With regx .Global = True ’如果检测内容中含有非字母和非数字则返回“失败“ .Pattern = “\W“ Set mat = .Execute(检测内容) If mat.Count 《》 0 Then 替换 = “失败“ Exit Function End If ’替换字线为A,数字为0,单个字母替换,返回替换后的字符 .Pattern = ““ 返回内容 = .Replace(检测内容, “A“) .Pattern = ““ 替换 = .Replace(返回内容, “0“) End WithEnd FunctionSub test() Cells(2, “B“) = 替换(Cells(1, “B“)) Cells(2, “C“) = 替换(Cells(1, “C“))End Subexcel:可不可以用正则表达式来写查找与替换
excel函数中不支持正则(但是VBA中支持),你的要求可以用这个公式,假定数据在A列从A1开始,在B1可以填入=LEFT(A1,MATCH(1,1/(MID(A1,ROW($1:$100),1)》=“啊“),)-1)这是数组公式,按Ctrl+Shift+Enter结束