VBA: поиск текста в IE, открытие ссылки, поиск строки, копирование текста, вставка в Excel - PullRequest
0 голосов
/ 28 мая 2019

Я полный новичок.Ребята, можете ли вы помочь мне со следующим?1. У меня есть таблица с кодами продуктов.2. У меня активная сессия Internet Explorer (вошел в систему) на странице индекса, заполненной ссылками, которые, помимо прочего, содержат указанные коды продуктов.3. Для каждого кода мне нужно его найти, открой ссылку.Затем найдите строку, содержащую строку «udsalg», и скопируйте всю строку, например «Udsalg 10994». 4. Вставьте строку рядом с кодом продукта.5. Войдите в IE и вернитесь на страницу индекса.5. Промойте и повторяйте, пока не будут найдены все коды продуктов.

У меня нет навыков в этом вопросе и я надеюсь на помощь.Я понимаю основы программирования (PHP и т. Д.).Я надеюсь, что кто-то может помочь или указать в правильном направлении.С наилучшими пожеланиями.

1 Ответ

0 голосов
/ 29 мая 2019

Вы можете попытаться сослаться на приведенный ниже пример кода, который даст вам большинство ответов на поставленные выше вопросы.Обратите внимание, что это не точный код.

'start a new subroutine called SearchBot
Sub SearchBot()

    'dimension (declare or set aside memory for) our variables
    Dim objIE As InternetExplorer 'special object variable representing the IE browser
    Dim aEle As HTMLLinkElement 'special object variable for an <a> (link) element
    Dim y As Integer 'integer variable we'll use as a counter
    Dim result as String 'string variable that will hold our result link

    'initiating a new instance of Internet Explorer and asigning it to objIE
    Set objIE = New InternetExplorer

    'make IE browser visible (False would allow IE to run in the background)
    objIE.Visible = True 

    'navigate IE to this web page (a pretty neat search engine really) 
    objIE.navigate "https://duckduckgo.com" 

    'wait here a few seconds while the browser is busy
    Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop 

    'in the search box put cell "A2" value, the word "in" and cell "C1" value 
    objIE.document.getElementById("search_form_input_homepage").Value = _ 
      Sheets("Sheet1").Range("A2").Value & " in " & Sheets("Sheet1").Range("C1").Value

    'click the 'go' button 
    objIE.document.getElementById("search_button_homepage").Click

    'wait again for the browser 
    Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop 

    'the first search result will go in row 2 
    y = 2 

    'for each <a> element in the collection of objects with class of 'result__a'... 
    For Each aEle In objIE.document.getElementsByClassName("result__a") 

        '...get the href link and print it to the sheet in col C, row y 
        result = aEle
        Sheets("Sheet1").Range("C" & y).Value = result

        '...get the text within the element and print it to the sheet in col D
        Sheets("Sheet1").Range("D" & y).Value = aEle.innerText
        Debug.Print aEle.innerText

        'is it a yellowpages link?
        If InStr(result, "yellowpages.com") > 0 Or InStr(result, "yp.com") > 0 Then
            'make the result red
            Sheets("Sheet1").Range("C" & y).Interior.ColorIndex = 3
            'place a 1 to the left
            Sheets("Sheet1").Range("B" & y).Value = 1
        End If

        'increment our row counter, so the next result goes below 
        y = y + 1 

    'repeat times the # of ele's we have in the collection 
    Next

    'add up the yellowpages listings
    Sheets("Sheet1").Range("B1").Value = _
      Application.WorksheetFunction.Sum(Sheets("Sheet1").Range("B2:B100"))

    'close the browser
    objIE.Quit

'exit our SearchBot subroutine
End Sub

Вы можете попытаться сослаться на код и попытаться понять его.Затем вы можете попытаться изменить его в соответствии с вашими требованиями.Если у вас есть какие-либо дополнительные вопросы, вы можете попробовать опубликовать пример кода.Мы постараемся проверить это и постараемся предоставить вам предложения для этого.

Полезные ссылки, чтобы узнать об автоматизации IE VBA.

(1) Excel + VBA + IE = веб-автоматизация

(2) IE (Internet Explorer) Автоматизация с использованием Excel VBA

(3) Автоматизация Internet Explorer (IE) с использованием VBA

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