Перейдите на сайт с Excell Vba - PullRequest
2 голосов
/ 13 апреля 2010

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

Например, вы можете выполнить поиск в Google и поместить результаты в электронную таблицу. Или перейдите на встроенный сайт.

Этот код извлекает данные с веб-сайта.

With ActiveSheet.QueryTables.Add(Connection:= _
    PUT_URL_HERE, _
    Destination:=Range("A1"))
    .Name = "I need serious help"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = False
    .RefreshPeriod = 0
    .WebSelectionType = xlAllTables
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
End With

Ответы [ 2 ]

5 голосов
/ 03 февраля 2011

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

Sub googlesearch()
    Set objIE = CreateObject("InternetExplorer.Application")
    WebSite = "www.google.com"
    With objIE
        .Visible = True
        .navigate WebSite
        Do While .Busy Or .readyState <> 4
            DoEvents
        Loop

        Set Element = .document.getElementsByName("q")
        Element.Item(0).Value = "Hello world"
        .document.forms(0).submit
        '.quit
        End With

End Sub

Таким образом, чтобы сделать это успешно, вам нужно знать имена элементов (вы можете сделать это, посмотрев на исходный код или установив надстройку, которая поможет вам, как firebug), вы также можете использовать .getElementsByID ("someIDhere").

1 голос
/ 27 января 2011

Я знаю, что немного поздно, но вот решение. Вам нужно будет сделать интерфейс для передачи поискового запроса, проверки / кодирования, если это необходимо, и т. Д. Для этого требуется Internet Explorer на вашем ПК. Он даст вам необработанный HTML, и вам придется анализировать его по мере необходимости.

Function GoogleSearch(strSearchTerm As String) As String
   Dim ie As Object
   Dim sHTML As String

   On Error GoTo ZERR
   Set ie = CreateObject("InternetExplorer.Application")

   With ie
       .Visible = False
       .navigate ("http://www.google.com/search?q=" & strSearchTerm)
       Do Until .readystate = 4
           DoEvents
       Loop
       sHTML = .document.Body.innerHTML
   End With
   Set ie = Nothing
GoogleSearch = sHTML    
ZERR:
   Set ie = Nothing
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...