Avatar billede hnteknik Novice
04. november 2016 - 18:10 Der er 3 kommentarer og
1 løsning

Extract Text from Website til Excel Vba

Jeg har brug for at hente teksten/tal fra række websider til indsættelse som rækker i et Excel regneark.

Jeg har dette eksempel, men det givet mig hele HTML delen. Jeg har blot brug for at hente det, der svarer til Copy Paste af siden. Det giver 15-20 linier med returns, hvor alle liner foruden en skal slettes. Er der nogen, som har et bud en copy Paste løsning.

Private Sub HTML_VBA_Excel()
    Dim oXMLHTTP As Object
    Dim sPageHTML  As String
    Dim sURL As String

    'Change the URL before executing the code
    sURL = "http://www.andeby.dk/1test/"

    'Extract data from website to Excel using VBA
    Set oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    oXMLHTTP.Open "GET", sURL, False
    oXMLHTTP.send
    sPageHTML = oXMLHTTP.responseText
    'sPageHTML = oXMLHTTP.responseXML.XML
    'Get webpage data into Excel
    ThisWorkbook.Sheets(2).Cells(1, 1) = sPageHTML

    MsgBox "Siden er hentet"

End Sub
Avatar billede hnteknik Novice
04. november 2016 - 18:34 #1
Prøvede lige noget inntertext, som ser ud til at virke, dog skal jeg have separeret talene, som kommer sådan ud i en enkelt celle
1635.7802512.2449.1742.1493417.75127.87760506413.9741.392-
men skulle være spredt ud i celler
tallene er fordelt sådan men samlet i en streng.
16,35.780,2512.244,9.174,2.149,34,17.751,27.877,60,5,064,13.974,1.392,-
Sub Test()
    Dim IE As Object
   
    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Visible = True
        .Navigate "http://www.andeby.dk/1test/" ' should work for any URL
        Do Until .ReadyState = 4: DoEvents: Loop
           
            x = .document.body.innertext
            MsgBox x
            x = Replace(x, Chr(10), Chr(13))
            x = Split(x, Chr(13))
            Range("A1").Resize(UBound(x)) = Application.Transpose(x)
           
            .Quit
        End With
End Sub
Avatar billede hnteknik Novice
04. november 2016 - 19:52 #2
Min udfordring nu er vist at få disse tabel celler over korrekt i Excel celler
<td>35.780</td>
            <td>25</td>
            <td>12.244</td>
            <td>9.174</td>
            <td>2.149</td>
            <td>34</td>
            <td>17.751</td>
            <td>27.877</td>
            <td>60</td>
            <td>50</td>
            <td>64</td>
            <td>13.974</td>
            <td>1.392</td>
            <td>-</td>
Avatar billede excelent Ekspert
06. november 2016 - 19:36 #3
Marker dine data og kør kode:

Sub xsplit() ' Tal uddrages til kolonnen til højre for kildedata
For Each c In Selection
c.Offset(0, 1) = Split(c, ">")(1)
Next

Selection.Offset(0, 1).Select

For Each c In Selection
c.Offset(0, 0) = Replace(Split(c, "<")(0), ".", ",")
Next
End Sub
Avatar billede hnteknik Novice
06. november 2016 - 19:59 #4
Tak skal du have . Det er en god løsning. Jeg fik det  øvrigt til at virke med denne 3.løsning. Her får jeg tabellen foldet ud i et antal kolonner. Så skal jeg blot fjerne et antal tomme rækker ved at sortere data bagefter. :-)

Sub Webtable2Exceltable(J, sUrl)

    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;" & sUrl _
        , Destination:=Range("$A$" & J))
        .Name = "18160278#18160278"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells ' adjust this setting to your needs
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "1" ' this is the number of the required table on a page
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = True
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester