3

几个月以来我一直在努力完成这项工作,如何编写 VBA 代码以在新会话中打开 Internet Explorer 我有一个包含许多登录名的应用程序我需要使用自动化同时打开它们,我用过

  set ie=new InternetExplorer  

但它会在旧会话中打开 ie,我想为每个登录打开新会话,请帮助我,我搜索了很多,但最终没有任何解决方案。这是我的代码

 Function GetIE() As InternetExplorer

  Dim WScript
Dim objShellWindows

 Set objShell = CreateObject("Shell.Application")
 Set objShellWindows = objShell.Windows
 Set WScript = CreateObject("WScript.Shell")


 Dim ieStarted
 ieStarted = False

  Dim ieError
  ieError = False

    Dim seconds
      seconds = 0

  While (Not ieStarted) And (Not ieError) And (seconds < 30)

If (Not objShellWindows Is Nothing) Then
    Dim objIE As InternetExplorer
    Dim IE


    For Each objIE In objShellWindows

        If (Not objIE Is Nothing) Then

            If IsObject(objIE.Document) Then
                Set IE = objIE.Document

                If VarType(IE) = 8 Then

                    If IE.Title = EmptyTitle Then
                        If Err.Number = 0 Then
                            IE.Write LoadingMessage

                            objIE.navigate Sheet1.Login.Text
                        ieStarted = True
                        Set GetIE = objIE


                      Else

                       MsgBox ErrorMessage
                            Err.Clear
                            ieError = True

                            Exit For
                        End If
                    End If
                End If
            End If
        End If

        Set IE = Nothing
        Set objIE = Nothing
    Next
End If

Application.Wait Now + TimeValue("00:00:1")
seconds = seconds + 1
Wend

 Set objShellWindows = Nothing
 Set objShell = Nothing



   End Function

使用此代码,我可以打开浏览器,但遗憾的是,我的网页正在打开的 Outlook 中打开,请帮助

4

3 回答 3

6

显然,该-nomerge论点将阻止会话合并。

Shell("iexplore.exe -nomerge http://www.yoursite.com")

更新

根据您的评论,您需要获取 IE 对象。您可能可以使用以下方法:

Dim wshShell
Set wshShell = WScript.CreateObject("WScript.Shell")

wshShell.Run "iexplore -nomerge http://www.google.com"

Dim objShell
Set objShell = CreateObject("Shell.Application")

Dim objShellWindows
Set objShellWindows = objShell.Windows

Dim i
Dim ieObject
For i = 0 To objShellWindows.Count - 1
    If InStr(objShellWindows.Item(i).FullName, "iexplore.exe") <> 0 Then
        Set ieObject = objShellWindows.Item(i)
        If VarType(ieObject.Document) = 8 Then
            MsgBox "Loaded " & ieObject.Document.Title
            Exit For
        End If
    End If
Next

Set ieObject = Nothing
Set objShellWindows = Nothing
Set objShell = Nothing
Set wshShell = Nothing
于 2013-01-06T17:01:47.937 回答
5

使用 Excel 2010 - 这是我使用的命令按钮。将 google.com 替换为您要在其他浏览器中打开的网站。

Private Sub commandname_Click()

'Opens an Explorer with a web site 

Dim IE As InternetExplorer

  Set IE = CreateObject("InternetExplorer.Application")

  IE.navigate ("http://WWW.GOOGLE.COM")

  IE.Visible = True

End Sub
于 2014-04-01T13:27:28.023 回答
2

更改后,此答案对我有用:

Dim IE As InternetExplorer

Dim IE As Object
于 2017-02-15T19:40:15.493 回答