Existem várias maneiras de importar dados da web para o Excel usando o VBA. Aqui estão alguns exemplos:
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.
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.
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.