Как автоматизировать Excel для поиска Google Несколько поисковых запросов, каждый из которых открывается в разных вкладках IE - PullRequest
1 голос
/ 03 мая 2019

Я хочу, чтобы макрос VBA автоматически открывал столбец ячеек на нескольких вкладках в Internet Explorer. Ячейки - это поисковый запрос для Google, каждый из которых открывается на нескольких вкладках с определенным диапазоном.

Sub GoogleSearch()

    Dim objIEBrowser

    Set objIEBrowser = CreateObject("InternetExplorer.Application")

    objIEBrowser.Visible = True

    Dim SearchTerm As String

    For Each Cell In Range("D6:D14")

        SearchTerm = Cell
        SearchTerm = Replace(SearchTerm, " ", "+")

        objIEBrowser.navigate "https://www.google.com/?gws_rd=ssl#q=" & SearchTerm

    Next

End Sub

В результате этого макрос открывает последнюю ячейку (D14), все остальные ячейки не ищутся и не открываются.

1 Ответ

1 голос
/ 03 мая 2019

Вы переходите к каждому URL в том же окне.Вам нужно открыть новые вкладки или окна.Константы для обозначения того, что нужно сделать здесь .

Это небольшое количество ячеек, поэтому я не считал эти значения поиска в массив.Обычно я бы считывал их в массив и зацикливал этот массив, вместо того, чтобы нести повторные затраты ввода-вывода при переходе назад и вперед от листа в цикле над каждой ячейкой.

Новые окна:

Option Explicit
Public Sub GoogleSearch()
    Dim objIEBrowser, searchTerm As String, i As Long, cell As Range
    Set objIEBrowser = CreateObject("InternetExplorer.Application")

    objIEBrowser.Visible = True

    For Each cell In ActiveSheet.Range("D6:D14") 'better to use explicit sheet name
        searchTerm = Replace$(cell.Value, " ", "+")

        If i = 0 Then
            objIEBrowser.navigate "https://www.google.com/?gws_rd=ssl#q=" & searchTerm
        Else
            objIEBrowser.document.parentWindow.execScript "window.open('" & "https://www.google.com/?gws_rd=ssl#q=" & searchTerm & "');"
        End If
        i = i + 1
    Next
    Stop
     objIEBrowser.Quit
End Sub

Или:

Option Explicit
Public Sub GoogleSearch()
    Dim objIEBrowser, searchTerm As String, i As Long, cell As Range
    Set objIEBrowser = CreateObject("InternetExplorer.Application")
    objIEBrowser.Visible = True
    For Each cell In ActiveSheet.Range("D6:D14") 'better to use explicit sheet name
        searchTerm = Replace$(cell.Value, " ", "+")
        objIEBrowser.Navigate2 "https://www.google.com/?gws_rd=ssl#q=" & searchTerm, CLng(1)
    Next
    Stop
     objIEBrowser.Quit
End Sub

Новые вкладки:

Option Explicit
Public Sub GoogleSearch()
    Dim objIEBrowser, searchTerm As String, i As Long, cell As Range, flag As Long
    Set objIEBrowser = CreateObject("InternetExplorer.Application")

    objIEBrowser.Visible = True
    i = 0
    For Each cell In ActiveSheet.Range("D6:D14") 'better to use explicit sheet name
        searchTerm = Replace$(cell.Value, " ", "+")
        flag = IIf(i = 0, 1, 2048)
        objIEBrowser.Navigate2 "https://www.google.com/?gws_rd=ssl#q=" & searchTerm, CLng(flag)
        i = i + 1
    Next
    Stop
     objIEBrowser.Quit
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...