就是把EXCEL表格某列内容里面的《书名》内的“书名” 一个个分别提取出来!
举例:内容内容内容《书名1》内容内容《书名2》
提取出:书名1,书名2
只能抓取一个,一篇文章多个《》,要抓取怎么办?VBA了··这个怎么用?
追答这个不是vba啊,就是个简单的公式而已,很简单的,把A8改成你的文本所在的单元格就行了。
追问是的!我测试了,只能抓取一篇文章里面一个《》 这篇文章如果有多个《》 就抓取不到剩下的,不过还是非常感谢
追答Public Function getid1(i As Range)
Dim zhengze As Object
Dim matcharr As Object
Dim match As Object
Set zhengze = CreateObject("vbscript.regexp")
zhengze.Global = True
zhengze.Pattern = "《.{1,10}》"
Set matcharr = zhengze.Execute(i.Text)
len=UBOUND(matcharr)-LBOUND(matcharr)+1
t=""
for i =0 to len-1
t=t & ";" & matcharr(i)
next
getid1 = t
End Function
这里的10可以修改为书名的最长长度。
非常感谢,不过我测试运行不了~是不是代码写错了?
追答不好意思,代码修改好了,经过测试可用。
Public Function getid1(i As Range)
Dim zhengze As Object
Dim matcharr As Object
Dim match As Object
Set zhengze = CreateObject("vbscript.regexp")
zhengze.Global = True
zhengze.Pattern = "《.{1,10}》"
Set matcharr = zhengze.Execute(i.Text)
t = ""
n = matcharr.Count
For m = 0 To n - 1
t = t & ";" & matcharr(m)
Next
getid1 = t
End Function
输入了,宏名称里面没有找到相关模块和名称!我是按照你上面提供的复制黏贴进去的!~是不是还要修改什么代码,我对这些也是第一次用!
追答代码复制到模块中之后,就可以把getid1当做一个函数使用了。
就是在你的单元格里输入=getid1(A1)回车,就可以了