Como Importar Dados da Web para o Excel Vba

Existem várias maneiras de importar dados da web para o Excel usando o VBA. Aqui estão alguns exemplos:

  1. Usando o método "QueryTable" para importar dados da web:

Este método importa dados da web para uma planilha específica no Excel.

``` Sub ImportDataFromWeb()Dim qt As QueryTable

Set qt = ActiveSheet.QueryTables.Add(Connection:= _"URL da página web", Destination:=Range("A1")) With qt.Name = "Meus Dados".FieldNames = True.RowNumbers = False.FillAdjacentFormulas = False.PreserveFormatting = True.RefreshOnFileOpen = False.BackgroundQuery = True.RefreshStyle = xlInsertDeleteCells.SavePassword = False.SaveData = True.AdjustColumnWidth = True.RefreshPeriod = 0.WebSelectionType = xlAllTables.WebFormatting = xlWebFormattingNone.WebPreFormattedTextToColumns = True.WebConsecutiveDelimitersAsOne = True.WebSingleBlockTextImport = False.WebDisableDateRecognition = False.WebDisableRedirections = False.Refresh BackgroundQuery:=False End With 

End Sub ```

Neste exemplo, a conexão é definida pela URL da página da web, a planilha de destino é definida pela célula A1 e outras configurações podem ser ajustadas.

  1. Usando o método "XMLHttp" para baixar dados da web em um objeto "XML" e, em seguida, analisando o objeto para gravar dados no Excel:

Este método baixa dados da web em um objeto "XML" e, em seguida, analisa o objeto para gravar dados em uma planilha específica no Excel.

``` Sub ImportDataFromWeb()Dim xmlhttp As MSXML2.XMLHTTP60Dim xmlDoc As MSXML2.DOMDocument60Dim xmlNodeList As MSXML2.IXMLDOMNodeListDim xmlNode As MSXML2.IXMLDOMNodeDim i As Long

Set xmlhttp = New MSXML2.XMLHTTP60 Set xmlDoc = New MSXML2.DOMDocument60 ' Defina a URL da página da web xmlhttp.Open "GET", "URL da página web", False xmlhttp.send ' Carregue dados em xmlDoc xmlDoc.LoadXML xmlhttp.responseText ' Localize a tag de dados na página da web Set xmlNodeList = xmlDoc.getElementsByTagName("tag de dados") ' Escreva dados na planilha i = 1 For Each xmlNode In xmlNodeListWorksheets("Plan1").Cells(i, 1) = xmlNode.Texti = i + 1 Next xmlNode 

End Sub ```

Neste exemplo, a conexão é definida pela URL da página da web e a tag de dados é definida pela tag XML que contém os dados que você deseja importar. Você precisará ajustar o código para usar suas próprias tags XML e planilha de destino.

  1. Usando o método "InternetExplorer" para acessar uma página da web e obter dados:

Este método usa o InternetExplorer para acessar uma página da web, localizar a tag de dados, analisar os dados e gravá-los em uma planilha específica no Excel.

``` Sub ImportDataFromWeb()Dim IE As ObjectDim htmlDoc As ObjectDim htmlTbl As ObjectDim htmlObj As ObjectDim i As Long, j As Long

' Criar uma instância do InternetExplorer Set IE = CreateObject("InternetExplorer.Application") ' Defina a URL da página da web IE.navigate "URL da página web" ' Aguarde até que a página seja carregada Do While IE.Busy Or IE.readyState <> 4Application.Wait DateAdd("s", 1, Now) Loop ' Obter o objeto htmlDoc Set htmlDoc = IE.document ' Localize a tabela de dados na página da web Set htmlTbl = htmlDoc.getElementsByClassName("tableClassName")(0) ' Escreva dados na planilha i = 1 For Each htmlObj In htmlTbl.getElementsByTagName("tr")j = 1For Each htmlSubObj In htmlObj.getElementsByTagName("td")  Worksheets("Plan1").Cells(i, j) = htmlSubObj.innerText  j = j + 1Next htmlSubObji = i + 1 Next htmlObj ' Feche o InternetExplorer IE.Quit 

End Sub ```

Neste exemplo, a conexão é definida pela URL da página da web e a tabela de dados é definida pela classe da tabela HTML que contém os dados que você deseja importar. Você precisará ajustar o código para usar sua própria classe de tabela HTML e planilha de destino.

Veja também mais Como Fazer com a letra C

Comentários