从一份新工作开始,我必须经历我的前任离开的大量文档。它们是MS Word文件,其中包含数百项专利的信息。我不想用在线表格复制/粘贴每一个专利号码,而是希望用可点击的超链接替换所有专利号码。我想这应该用vbscript来完成(我不习惯使用MS Office)。vbscript:用超链接替换活动文档中的文本
我到目前为止有:
<obsolete>
这不是为我工作: 1.我(可能)需要通过向的ActiveDocument添加的东西循环 2.更换功能可能需要一个串而不是一个参数的对象 - 是否有一个VBScript中的__toString()?
THX!
更新: 我有这部分工作(正则表达式,并找到比赛) - 现在只要我能得到的hyperlink.add法右锚...
Sub HyperlinkPatentNumbers()
'
' HyperlinkPatentNumbers Macro
'
Dim objRegExp, Matches, match, myRange
Set myRange = ActiveDocument.Content
Set objRegExp = CreateObject("VBScript.RegExp")
With objRegExp
.Global = True
.IgnoreCase = False
.Pattern = "(WO|EP|US)([0-9]*)(A1|A2|B1|B2)"
End With
Set Matches = objRegExp.Execute(myRange)
If Matches.Count >= 1 Then
For Each match In Matches
ActiveDocument.Hyperlinks.Add Anchor:=objRegExp.match, Address:="http://worldwide.espacenet.com/publicationDetails/biblio?DB=EPODOC&adjacent=true&locale=en_EP&CC=$1&NR=$2&KC=$3"
Next
End If
Set Matches = Nothing
Set objRegExp = Nothing
End Sub
事实上,我不得不在正则表达式被选为范围的部分中找出一个小错误。我会更新我的答案,使其成为完整的工作代码。 – zenlord 2013-02-18 15:21:39