这不是一个危机,因为脚本实际上工作得很好,但我需要在办公室范围内实现它,我期望这个问题会导致一点点与技术精通程度较低的人更加混淆。Outlook VBA只适用于Word文档在后台打开
以下内容旨在替换我们使用的链接到可以找到它们的网站的常见引用。因此,当用户点击按钮时,对策略AP & P-X-A-1-100的引用自动成为APP-X-A-1-100_issuance.shtml的链接。
问题是,它只适用于在后台打开Word文档。如果Word未打开,则出现三个错误之一:“远程服务器计算机不存在或不可用”或“自动化错误:远程调用过程失败”或“ActiveX组件无法创建对象”。如果连续尝试三次,我可以对这三个进行排列。我从来没有像这样的旋转错误。
任何想法为什么需要Word来运行?
Sub CitationPolicy()
Dim myInspector As Outlook.Inspector
Dim myObject As Object
Dim myItem As Outlook.MailItem
Dim rngStory As Word.Range
Dim myDoc As Word.Document
Dim mySelection As Word.Selection
Dim strItem As String
Dim strItem2 As String
Dim strLink As String
Set myInspector = Application.ActiveInspector
Set myObject = myInspector.CurrentItem
Set myDoc = myInspector.WordEditor
Set mySelection = myDoc.Application.Selection
For Each rngStory In ActiveDocument.StoryRanges
With mySelection.Find
.Text = "AP&P-*-[0-9]{3}"
.MatchWildcards = True
.Replacement.Text = ""
.Wrap = wdFindContinue
While mySelection.Find.Execute
strItem = mySelection.Text
strItem2 = Replace(strItem, "AP&P", "APP")
mySelection.Hyperlinks.Add Anchor:=mySelection.Range, _
Address:="http://www.oursite.com/" & strItem2 & "_issuance.shtml", _
TextToDisplay:=strItem
Wend
End With
Next rngStory
End Sub
那是因为你正在引用WORD应用程序。 Outlook使用Word引擎作为操作员,但必须将其引用为MailItem.GetInspector.WordEditor。 也许看看这个:http://msdn.microsoft.com/en-us/library/dd492012(v=office.12).aspx – 2014-08-27 22:21:17
@KrishKM这是一个合法的答案。把它放在一个可以投票和接受的地方。 – RubberDuck 2014-08-28 00:03:08