Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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:在Internet Explorer上选择特定选项卡_Vba_Internet Explorer_Tabs_Internet Explorer 11_Getelementsbyclassname - Fatal编程技术网

VBA:在Internet Explorer上选择特定选项卡

VBA:在Internet Explorer上选择特定选项卡,vba,internet-explorer,tabs,internet-explorer-11,getelementsbyclassname,Vba,Internet Explorer,Tabs,Internet Explorer 11,Getelementsbyclassname,我在这里有另一篇关于同一个整体问题的不同问题的帖子:。现在,我的编码出现了一个新问题(我将在下面发布其中的一部分),如果我使用多个选项卡打开Internet Explorer,我的代码将不再填充文本框-,即使该选项卡是当前正在查看的选项卡。只要我关闭所有其他选项卡,代码就会完美地运行 如果该选项卡在URL处命名为Tab1:https://sub.website.com/dir/,如何在此网站上用多个选项卡填写表单 以下是正在使用的代码(由提供帮助): 使用Shell窗口循环并保留找到的第一个窗口

我在这里有另一篇关于同一个整体问题的不同问题的帖子:。现在,我的编码出现了一个新问题(我将在下面发布其中的一部分),如果我使用多个选项卡打开Internet Explorer,我的代码将不再填充文本框-,即使该选项卡是当前正在查看的选项卡。只要我关闭所有其他选项卡,代码就会完美地运行

如果该选项卡在URL处命名为
Tab1
https://sub.website.com/dir/
,如何在此网站上用多个选项卡填写表单

以下是正在使用的代码(由提供帮助):


使用Shell窗口循环并保留找到的第一个窗口。关闭剩余的IE选项卡/窗口

Sub testTabClose()

    Dim oShell              As Object
    Dim oWin                As Object
    Dim IE                  As Object
    Dim lTotlWin            As Long
    Dim lCtr
    Dim lCtr2


    Set oShell = CreateObject("Shell.Application")
    Set oWin = oShell.Windows()

    lTotlWin = oWin.Count - 1 '/ Starts with zero

    For lCtr = 0 To lTotlWin
        If UCase(oWin.Item(lCtr).FullName) Like "*IEXPLORE.EXE" Then
            Set IE = oWin.Item(lCtr)
            '/ Found it, jump out.
            Exit For
        End If

    Next

    '/ Keep the first tab. Close rest of them
    For lCtr2 = lCtr + 1 To oWin.Count - 1
        If lCtr2 <> lCtr Then
         oWin.Item(lCtr2).Quit '/ Kill the tab.
        End If
    Next

End Sub
子测试选项卡关闭()
将oShell作为对象
将oWin作为对象
模糊的物体
我会赢的
昏暗的lCtr
Dim lCtr2
设置oShell=CreateObject(“Shell.Application”)
Set oWin=oShell.Windows()
lTotlWin=oWin.Count-1'/以零开头
对于lCtr=0到lTotlWin
如果UCase(oWin.Item(lCtr.FullName)像“*IEXPLORE.EXE”,那么
设置IE=oWin.项目(lCtr)
’/找到了,跳出来。
退出
如果结束
下一个
“/保留第一个选项卡。他们中的其他人
对于lCtr2=lCtr+1到oWin.Count-1
如果lCtr2 lCtr,则
oWin.Item(lCtr2)。退出“/终止选项卡。
如果结束
下一个
端接头
要使用选项卡名称进行标识,这将起作用:

Set oShell = CreateObject("Shell.Application")
    Set oWin = oShell.Windows()

    lTotlWin = oWin.Count - 1 '/ Starts with zero

    For lCtr = 0 To lTotlWin
        If lTotlWin >= lCtr Then
            If UCase(oWin.Item(lCtr).FullName) Like "*IEXPLORE.EXE" Then
                If IE Is Nothing Then
                    Set IE = oWin.Item(lCtr)
                End If
                If oWin.Item(lCtr).document.Title <> "This is the title I am looking for." Then
                        '/ This tab is not needed.
                        oWin.Item(lCtr).Quit
                End If
            End If
        End If
    Next
Set oShell=CreateObject(“Shell.Application”)
Set oWin=oShell.Windows()
lTotlWin=oWin.Count-1'/以零开头
对于lCtr=0到lTotlWin
如果lTotlWin>=lCtr,则
如果UCase(oWin.Item(lCtr.FullName)像“*IEXPLORE.EXE”,那么
如果我什么都不是
设置IE=oWin.项目(lCtr)
如果结束
如果oWin.Item(lCtr.document.Title)“这就是我要找的标题”,那么
“/不需要此选项卡。
oWin.Item(lCtr).退出
如果结束
如果结束
如果结束
下一个

使用Shell窗口循环并保留找到的第一个窗口。关闭剩余的IE选项卡/窗口

Sub testTabClose()

    Dim oShell              As Object
    Dim oWin                As Object
    Dim IE                  As Object
    Dim lTotlWin            As Long
    Dim lCtr
    Dim lCtr2


    Set oShell = CreateObject("Shell.Application")
    Set oWin = oShell.Windows()

    lTotlWin = oWin.Count - 1 '/ Starts with zero

    For lCtr = 0 To lTotlWin
        If UCase(oWin.Item(lCtr).FullName) Like "*IEXPLORE.EXE" Then
            Set IE = oWin.Item(lCtr)
            '/ Found it, jump out.
            Exit For
        End If

    Next

    '/ Keep the first tab. Close rest of them
    For lCtr2 = lCtr + 1 To oWin.Count - 1
        If lCtr2 <> lCtr Then
         oWin.Item(lCtr2).Quit '/ Kill the tab.
        End If
    Next

End Sub
子测试选项卡关闭()
将oShell作为对象
将oWin作为对象
模糊的物体
我会赢的
昏暗的lCtr
Dim lCtr2
设置oShell=CreateObject(“Shell.Application”)
Set oWin=oShell.Windows()
lTotlWin=oWin.Count-1'/以零开头
对于lCtr=0到lTotlWin
如果UCase(oWin.Item(lCtr.FullName)像“*IEXPLORE.EXE”,那么
设置IE=oWin.项目(lCtr)
’/找到了,跳出来。
退出
如果结束
下一个
“/保留第一个选项卡。他们中的其他人
对于lCtr2=lCtr+1到oWin.Count-1
如果lCtr2 lCtr,则
oWin.Item(lCtr2)。退出“/终止选项卡。
如果结束
下一个
端接头
要使用选项卡名称进行标识,这将起作用:

Set oShell = CreateObject("Shell.Application")
    Set oWin = oShell.Windows()

    lTotlWin = oWin.Count - 1 '/ Starts with zero

    For lCtr = 0 To lTotlWin
        If lTotlWin >= lCtr Then
            If UCase(oWin.Item(lCtr).FullName) Like "*IEXPLORE.EXE" Then
                If IE Is Nothing Then
                    Set IE = oWin.Item(lCtr)
                End If
                If oWin.Item(lCtr).document.Title <> "This is the title I am looking for." Then
                        '/ This tab is not needed.
                        oWin.Item(lCtr).Quit
                End If
            End If
        End If
    Next
Set oShell=CreateObject(“Shell.Application”)
Set oWin=oShell.Windows()
lTotlWin=oWin.Count-1'/以零开头
对于lCtr=0到lTotlWin
如果lTotlWin>=lCtr,则
如果UCase(oWin.Item(lCtr.FullName)像“*IEXPLORE.EXE”,那么
如果我什么都不是
设置IE=oWin.项目(lCtr)
如果结束
如果oWin.Item(lCtr.document.Title)“这就是我要找的标题”,那么
“/不需要此选项卡。
oWin.Item(lCtr).退出
如果结束
如果结束
如果结束
下一个

以下是我在自动化现有IE窗口时通常使用的方法:

Sub Tester()
     Dim IE As Object
     Set IE = GetIE("http://www.google.com")
     Debug.Print IE.document.Title
     'work with IE
End Sub


Function GetIE(sLocation As String) As Object

    Dim objShell As Object, objShellWindows As Object, o As Object
    Dim sURL As String
    Dim retVal As Object

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

    For Each o In objShellWindows
        sURL = ""
        On Error Resume Next  'because may not have a "document" property
        'Check the URL and if it's the one you want then
        ' assign the window object to the return value and exit the loop
        sURL = o.document.Location
        On Error GoTo 0
        If sURL Like sLocation & "*" Then
            Set retVal = o
            Exit For
        End If
    Next o

    Set GetIE = retVal

End Function

以下是我在自动化现有IE窗口时通常使用的方法:

Sub Tester()
     Dim IE As Object
     Set IE = GetIE("http://www.google.com")
     Debug.Print IE.document.Title
     'work with IE
End Sub


Function GetIE(sLocation As String) As Object

    Dim objShell As Object, objShellWindows As Object, o As Object
    Dim sURL As String
    Dim retVal As Object

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

    For Each o In objShellWindows
        sURL = ""
        On Error Resume Next  'because may not have a "document" property
        'Check the URL and if it's the one you want then
        ' assign the window object to the return value and exit the loop
        sURL = o.document.Location
        On Error GoTo 0
        If sURL Like sLocation & "*" Then
            Set retVal = o
            Exit For
        End If
    Next o

    Set GetIE = retVal

End Function


每个IE窗口都有各种相关属性,您可以测试它们是否是您想要的(而不是只使用第一个)<代码>位置和
标题
似乎是一个很好的起点。我以前从未用IE编码过。在执行
Set doc=IE.document
之后,我用
debug.print doc.title
验证了所需的选项卡/文档标题。一旦我得到了这个名字,是否有一个简单的
语句我可以做,例如:
doc.tab(“name”)
或者我将如何使用它?每个IE窗口都有不同的属性,你可以测试它是否是你想要的(而不是仅仅使用第一个)<代码>位置
标题
似乎是一个很好的起点。我以前从未用IE编码过。在执行
Set doc=IE.document
之后,我用
debug.print doc.title
验证了所需的选项卡/文档标题。一旦我得到了这个名字,是否有一个简单的
语句,比如:
doc.tab(“name”)
或者我将如何使用它?