Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 脚本没有';不存在或无效_Vba_Outlook - Fatal编程技术网

Vba 脚本没有';不存在或无效

Vba 脚本没有';不存在或无效,vba,outlook,Vba,Outlook,我在stack overflow上找到了这段代码,我正试图用它打开Internet Explorer,在电子邮件中有一个来自特定地址的链接(我为此创建了一个规则) 当我尝试运行它时,我收到以下错误:“脚本不存在或无效。”。我正在使用Microsoft Outlook 2010 Sub LaunchURL(itm As MailItem) Dim bodyString As String Dim bodyStringSplitLine Dim bodyStringSpli

我在stack overflow上找到了这段代码,我正试图用它打开Internet Explorer,在电子邮件中有一个来自特定地址的链接(我为此创建了一个规则)

当我尝试运行它时,我收到以下错误:“脚本不存在或无效。”。我正在使用Microsoft Outlook 2010

Sub LaunchURL(itm As MailItem)

    Dim bodyString As String
    Dim bodyStringSplitLine
    Dim bodyStringSplitWord
    Dim splitLine
    Dim splitWord

    bodyString = itm.Body
    bodyStringSplitLine = Split(bodyString, vbCrLf)

    For Each splitLine In bodyStringSplitLine
        bodyStringSplitWord = Split(splitLine, " ")

        For Each splitWord In bodyStringSplitWord
            If Left(splitWord, 7) = "http://" Then
               Shell ("C:\Program Files (x86)\Internet Explorer\iexplore.exe" & " " & splitWord)

            End If
        Next

    Next

    Set itm = Nothing

End Sub

Private Sub test()
    Dim currItem As MailItem
    Set currItem = ActiveInspector.CurrentItem
    LaunchURL currItem
End Sub

首先,剧本是错误的。您尝试在web浏览器中打开邮件正文中的每个单词。你需要找到一个真正的URL

您需要使用Outlook项的属性来获取表示指定项的HTML正文的字符串。然后,您可以查找Document类的
属性,该属性返回表示指定文档中所有超链接的超链接集合。例如:

For Each aHyperlink In document.Hyperlinks 
   If InStr(LCase(aHyperlink.Address), "microsoft") <> 0 Then  
     MsgBox aHyperlink.Name 
   End If 
Next aHyperlink
用于文档中的每个超链接。超链接
如果InStr(LCase(aHyperlink.Address),“microsoft”)为0,则
MsgBox aHyperlink.Name
如果结束
下一个超级链接
有关更多信息,请参阅

无需指定机器上IE的路径。例如,您可以使用以下代码:

Shell(splitWord)

将打开默认的web浏览器。此外,IE的路径可能错误,并且取决于机器(x86或x64)


最后,您可能会发现这篇文章很有帮助。

我已经试用了这段代码,没有发现任何问题。窗户开了。请确保您的项目名称有效。此外,请尝试删除该规则,然后重命名项目,然后将该规则添加回。另外,from:“注意:已知使用此技术会导致VBA代码损坏。请确保导出代码模块或备份VBAProject.otm文件。”