【问题标题】:Point VBA to the second tab of the IE instance将 VBA 指向 IE 实例的第二个选项卡
【发布时间】:2015-10-19 22:32:24
【问题描述】:

问题是这一行:

Set TrackID2 = oIE.document.getelementbyid("main-search-box")

基本上,我需要 VBA 来打开一个站点的两个实例(在 2 个选项卡中),找到搜索框并输入并提交一个字符串。

我打开了选项卡,但我找不到 VBA 将正确的字符串输入到 IE 实例中的第二个选项卡的方法。对,现在它打开了 2 个选项卡,但是将两个字符串都输入到第一个选项卡中并在那里搜索了两次,而第二个选项卡只打开了地址。

如何编辑代码以将 VBA 指向第二个选项卡,而不是像现在这样的第一个选项卡?

提前感谢您的帮助!

Sub TestIE() 

Dim IE As Object 
Dim TrackID As Object 
Dim TrackID2 As Object 
Dim address As String 

address = "https://www.google.com/" 

Const navOpenInNewTab = &H800 
Set oIE = CreateObject("InternetExplorer.Application") 
oIE.Visible = True 


oIE.Navigate address 
Do Until oIE.readystate = 4: 
    DoEvents: Loop 
    Set TrackID = oIE.document.getelementbyid("main-search-box") 
    TrackID.Value = ActiveSheet.Range("a1") 
    TrackID.form.submit 

    oIE.Navigate2 address, CLng(navOpenInNewTab) 
Do Until oIE.readystate = 4: 
        DoEvents: Loop 
        Set TrackID2 = oIE.document.getelementbyid("main-search-box") 
        TrackID2.Value = ActiveSheet.Range("A2") 
        TrackID.form.submit 

    End Sub 

【问题讨论】:

  • 为什么不在同一个窗口/选项卡中执行每个搜索?您需要同时打开窗户吗?
  • 是的,我确实需要同时打开所有这些以进行比较。一旦我弄清楚代码,我可能会将其扩展为同时拥有 5-8 个选项卡。
  • 表单提交后标签 URL 是否不同?如果是,那么您可以从此处调整代码以选择“未提交”选项卡:vbazone.com/?p=89
  • 提交表单后,URL 会发生变化。我的 VBA/编程经验非常基础,感谢您的建议,但该代码似乎超出了我的想象。你能指出我可以适应的部分吗?无论如何,我都感谢您的反馈。谢谢!
  • 查看here发布的答案

标签: vba internet-explorer


【解决方案1】:

这是我决定做的,因为所有其他选项都超出了我的专业水平......

Sub testie2()


Dim oIE As Object
Dim oIE1 As Object
Dim oIE2 As Object
Dim oIE3 As Object
Dim oIE4 As Object
Dim oIE5 As Object
Dim oIE6 As Object
Dim oIE7 As Object
Dim oIE8 As Object
Dim oIE9 As Object

Dim TrackID As Object
Dim TrackID1 As Object
Dim TrackID2 As Object
Dim TrackID3 As Object
Dim TrackID4 As Object
Dim TrackID5 As Object
Dim TrackID6 As Object
Dim TrackID7 As Object
Dim TrackID8 As Object
Dim TrackID9 As Object

'----------------------------0---------------------------------------------
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Navigate ("https://www.linkedin.com/")
oIE.Visible = True


Do Until oIE.ReadyState = 4:
DoEvents: Loop
Set TrackID = oIE.document.getelementbyid("main-search-box")
TrackID.Value = ActiveSheet.Range("A1")

TrackID.form.submit

'------------------------------1------------------------------------------

Set oIE1 = CreateObject("InternetExplorer.Application")
oIE1.Navigate ("https://www.linkedin.com/")
oIE1.Visible = True

Do Until oIE1.ReadyState = 4:
DoEvents: Loop
Set TrackID1 = oIE1.document.getelementbyid("main-search-box")
TrackID1.Value = ActiveSheet.Range("A2")

TrackID1.form.submit

'------------------------------2-------------------------------------------

Set oIE2 = CreateObject("InternetExplorer.Application")
oIE2.Navigate ("https://www.linkedin.com/")
oIE2.Visible = True

Do Until oIE2.ReadyState = 4:
DoEvents: Loop
Set TrackID2 = oIE2.document.getelementbyid("main-search-box")
TrackID2.Value = ActiveSheet.Range("A3")

TrackID2.form.submit

'------------------------------3-------------------------------------------

Set oIE3 = CreateObject("InternetExplorer.Application")
oIE3.Navigate ("https://www.linkedin.com/")
oIE3.Visible = True

Do Until oIE3.ReadyState = 4:
DoEvents: Loop
Set TrackID3 = oIE3.document.getelementbyid("main-search-box")
TrackID3.Value = ActiveSheet.Range("A4")

TrackID3.form.submit

'------------------------------4-------------------------------------------

Set oIE4 = CreateObject("InternetExplorer.Application")
oIE4.Navigate ("https://www.linkedin.com/")
oIE4.Visible = True

Do Until oIE4.ReadyState = 4:
DoEvents: Loop
Set TrackID4 = oIE4.document.getelementbyid("main-search-box")
TrackID4.Value = ActiveSheet.Range("A5")

TrackID4.form.submit

'------------------------------5-------------------------------------------

Set oIE5 = CreateObject("InternetExplorer.Application")
oIE5.Navigate ("https://www.linkedin.com/")
oIE5.Visible = True

Do Until oIE5.ReadyState = 4:
DoEvents: Loop
Set TrackID5 = oIE5.document.getelementbyid("main-search-box")
TrackID5.Value = ActiveSheet.Range("A6")

TrackID5.form.submit

'------------------------------6-------------------------------------------

Set oIE6 = CreateObject("InternetExplorer.Application")
oIE6.Navigate ("https://www.linkedin.com/")
oIE6.Visible = True

Do Until oIE6.ReadyState = 4:
DoEvents: Loop
Set TrackID6 = oIE6.document.getelementbyid("main-search-box")
TrackID6.Value = ActiveSheet.Range("A7")

TrackID6.form.submit

'------------------------------7-------------------------------------------

Set oIE7 = CreateObject("InternetExplorer.Application")
oIE7.Navigate ("https://www.linkedin.com/")
oIE7.Visible = True

Do Until oIE7.ReadyState = 4:
DoEvents: Loop
Set TrackID7 = oIE7.document.getelementbyid("main-search-box")
TrackID7.Value = ActiveSheet.Range("A8")

TrackID7.form.submit

'------------------------------8-------------------------------------------

Set oIE8 = CreateObject("InternetExplorer.Application")
oIE8.Navigate ("https://www.linkedin.com/")
oIE8.Visible = True

Do Until oIE8.ReadyState = 4:
DoEvents: Loop
Set TrackID8 = oIE8.document.getelementbyid("main-search-box")
TrackID8.Value = ActiveSheet.Range("A9")

TrackID8.form.submit

'------------------------------9-------------------------------------------

Set oIE9 = CreateObject("InternetExplorer.Application")
oIE9.Navigate ("https://www.linkedin.com/")
oIE9.Visible = True

Do Until oIE9.ReadyState = 4:
DoEvents: Loop
Set TrackID9 = oIE9.document.getelementbyid("main-search-box")
TrackID9.Value = ActiveSheet.Range("A10")

TrackID9.form.submit


End Sub

我知道它并不优雅,但是大大减少了手动输入,并且肯定对工作有帮助,当然希望可以将所有这些都放入选项卡中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    相关资源
    最近更新 更多