VBA-spliting Ergebnisse aus html-importierte Tabelle in excel
Hallo, ich bin der Import einer gesamten Tabelle von einer Webseite in excel string:
Dim fST As String
fST = Doc.getElementsByTagName("table")(0).innerText
danach würde ich gerne teilen Sie die Tabelle in excel-Zellen und Spaltung zu tun mit der <td>
- tags aus der html-Tabelle, oder zumindest die option, für die ich denken kann getan werden, damit die importierte Tabelle werden die gleichen sein, in excel, sobald es importiert wird jeder Wert wird innerhalb der einzelnen Zelle.
Lassen Sie mich wissen, danke.
Hier ist das Ganze conde, ich bin mit:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = Range("URL").Row And _
Target.Column = Range("URL").Column Then
Dim IE As New InternetExplorer
IE.Visible = True
IE.navigate Application.ActiveSheet.Range("URL")
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Dim Doc As HTMLDocument
Set Doc = IE.document
Dim tbl, trs, tr, tds, td, r, c
Set tbl = Doc.getElementsByTagName("table")(0)
Set trs = tbl.getElementsByTagName("tr")
For r = 1 To trs.Count
Set tds = trs(r).getElementsByTagName("td")
For c = 1 To tds.Count
ActiveSheet.Cells(r, c).Value = tds(c).innerText
Next c
Next r
IE.Quit
End If
End Sub
Aber es sagt: Fehler: Objekt unterstützt diese Eigenschaft oder Methode auf die folgende Zeile: For r = 1 To trs.Graf
Wäre es nicht einfacher Zugriff auf die Tabelle-Zellen direkt in das HTML-Dokument und kopieren Sie einfach Ihre Werte? So oder so, wäre es sinnvoll zu posten was du schon versucht hast, und erwähne, welche Probleme Sie hatte mit diesem code.
okay, ich ging zu der Entscheidung, dass ich füllen jede Zelle auseinander, mit dem folgenden code: Dim fST As String fST = Doc.getElementsByTagName("TD")(1).innerText Range("Year01").Wert = fST, aber ich habe ti schreiben Sie es jedes mal kann ich nur von Schleifen es einige, wie ? was auch immer Extraktion der Tabelle in excell wird für mich arbeiten
okay, ich ging zu der Entscheidung, dass ich füllen jede Zelle auseinander, mit dem folgenden code: Dim fST As String fST = Doc.getElementsByTagName("TD")(1).innerText Range("Year01").Wert = fST, aber ich habe ti schreiben Sie es jedes mal kann ich nur von Schleifen es einige, wie ? was auch immer Extraktion der Tabelle in excell wird für mich arbeiten
InformationsquelleAutor John Malko | 2013-06-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
BEARBEITEN: getestet Beispiel
ActiveSheet.Range(ActiveSheet.Cells(1,1), ActiveSheet.Cells(RowCount, ColumnCount)).Value = TwoLevelArray
es sagt: Fehler: Objekt unterstützt diese Eigenschaft oder Methode auf die folgende Zeile: For r = 1 To trs.Zählen
Siehe mein update für eine vollständige Beispiel (und meine Feste
.Count
/.Length
Fehler)Das ist wirklich woorking jetzt , danke! Letzte Frage, können Sie mir sagen, wissen um die Position der Ergebnisse, so dass Sie beginnen, von der B4 zum Beispiel, und jetzt aus der Zelle A1
Siehe mein edit - du kannst
Offset()
für dieseInformationsquelleAutor Tim Williams
Ich sah überall nach der Antwort auf diese Frage. Schließlich fand ich die Lösung in der Unterhaltung mit einem Kollegen, das war eigentlich durch die Aufzeichnung eines Makros.
Ich weiß, Sie denken alle Sie sind oben, aber es ist tatsächlich der beste Weg. Sehen Sie den vollständigen Beitrag hier: http://automatic-office.com/?p=344 kurz gesagt, Sie wollen, um das makro aufzuzeichnen und gehe auf Daten --> aus web und navigieren Sie zu Ihrer website und wählen Sie die Tabelle, die Sie möchten. Sagen Sie Excel, die Zelle, steckte es in und das ist es!
Benutzt habe ich die oben genannten Lösungen "get element by id" - Typ Material in der Vergangenheit, und es ist großartig für ein paar Elemente, aber wenn Sie eine ganze Tabelle, und Sie sind nicht super erfahren, einfach ein makro aufzeichnen. nicht erzählen Sie Ihren Freunden und dann neu formatieren, dass es aussieht wie Ihre eigene Arbeit, so kennt Sie niemand verwendet das makro-tool 😉
InformationsquelleAutor Rrgg