Set Focus to Internet Explorer Object in Visual Basic

后端 未结 4 943
别跟我提以往
别跟我提以往 2020-12-11 21:13

Does anybody know how to set focus onto an IE object with Visual Basic? I\'ve tried myieobject.SetFocus, but the compiler errors with this statement.

4条回答
  •  天命终不由人
    2020-12-11 21:38

    I needed a spreadsheet of mine to "set focus" to Internet Explorer after performing a function so I didn't have to bother clicking on it. This is what I found to work:

          Const myPageTitle As String = "Title of my webpage"
          Const myPageURL As String = "http://www.mywebpage.com"
          Dim myIE As SHDocVw.InternetExplorer
          Dim myIE As InternetExplorer
          Set myIE = GetOpenIEByTitle(myPageTitle, False)
    
    
          myIE.visible = false
          DoEvents
          myIE.visible = true  
         'for some reason, making the page invisible then visible always ensures it pops up
    
        Function GetOpenIEByTitle(i_Title As String, _
                              Optional ByVal i_ExactMatch As Boolean = True) As SHDocVw.InternetExplorer
    Dim objShellWindows As New SHDocVw.ShellWindows
    
      If i_ExactMatch = False Then i_Title = "*" & i_Title & "*"
      'ignore errors when accessing the document property
      On Error Resume Next
      'loop over all Shell-Windows
      For Each GetOpenIEByTitle In objShellWindows
        'if the document is of type HTMLDocument, it is an IE window
        If TypeName(GetOpenIEByTitle.document) = "HTMLDocument" Then
          'check the title
          If GetOpenIEByTitle.document.Title Like i_Title Then
            'leave, we found the right window
            Exit Function
          End If
        End If
      Next
    End Function
    

提交回复
热议问题