Использование VBA для извлечения значений из столбца ячеек, поиска содержимого на веб-странице и печати результата в соответствующем столбце - PullRequest
0 голосов
/ 09 мая 2019

Первый раз с использованием VBA.У меня есть лист Excel со списком чисел в столбце A. Я хочу взять каждое из этих значений, найти их на веб-странице и вернуть результат в столбце C, если веб-страница содержит определенную строку текста.

Два вопроса: 1) Я не могу понять, как просто сразу найти на соответствующей странице все значения «A» одно за другим (например, objIE.Navigate "https://www.google.com/search?q=" & Sheets(«Лист1»). Диапазон («А1»). Значение). И как мне его автоматизировать, чтобы он затем выполнял поиск по значению А2 и т. Д. Поэтому в приведенном ниже коде я открываю IE, копирую А1 и нажимаю настраница для поиска.

и связанный с ней 2), я не могу понять, как заставить код работать для всех значений в столбце A и возвращать соответствующие результаты в столбце C.

Я искал пару часов и вижу вещи, которые связаны между собой, но я довольно новичок в этом, и я не могу понять, что я считаю довольно простой вещью.

'start a new subroutine called SearchResult

Sub SearchResult()
    Dim objIE As InternetExplorer 
    Dim y As Integer 

Set numrows = number of rows of data.
    NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
    Range("A1").Select
      For y = 1 To NumRows


Set objIE = New InternetExplorerMedium
    objIE.Visible = False
    objIE.navigate "the webpage I want"

Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
 'in the search box put cell "A" value
  objIE.document.getElementById("the__field--search").Value = _
  Sheets("Sheet1").Range("A" & y).Value
  'click the 'search' button
  objIE.document.getElementById("the__field--search").Click
  'wait again for the browser
  Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop

'In the above, I'm trying to open the webpage, paste the value in A, and 
  click. But all the webpages are of the form, webpage.com/ (value in A), 
  so, I know there is an easier way.


    If InStr(objIE.document.body.innerHTML, "Text String") = 
    0 Then
        '...print to Column C
        Sheets("Sheet1").Range("C" & y).Value = "Not Found"
    Else
        Sheets("Sheet1").Range("C" & y).Value = "Found"
   End If

    'close the browser
    objIE.Quit
 ActiveCell.Offset(1, 0).Select

      Next

   End Sub

В данный момент код просто выполняет поиск в A1 и отправляет один и тот же результат в C1, C2 и т. Д. Я хочу выполнить поиск в A1, опубликовать результат в C1, выполнить поиск A2, опубликовать результат в C2 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...