首页 > 解决方案 > 如何通过 vba 正确地从网页复制和粘贴信息(图表、表格等)到 excel

问题描述

我在网页上有一个表格,我试图将其复制并粘贴到 Excel 中,格式正确。无论我尝试做什么来修复它,它都会在一列中显示出来。

我可以复制并粘贴它,只是格式非常错误。请帮忙。

 a lot of stuff before this....


 lastrow = ws.Cells(ws.rows.Count, "A").End(xlUp).Row
   ' lastrow = ws.Range("A1").End(xlUp).Row
    i = i + 1

For i = 3 To lastrow
        Set svalue1 = .getElementbyID("provideANumber")
            svalue1.Value = ws.Cells(i, 1).Value

    For Each eInput In .getElementsbyTagName("input")
            If eInput.getAttribute("value") = "ENTERit" Then
                eInput.Click

    Exit For

            End If
Next

             IE.Visible = True
Exit For
Next i

中间还有更多的东西......

'将结果复制并粘贴到 Excel 中

    Sheets("Sheet4").Select
    Range("A1:Z50") = ""
    Range("A1:Z150").Select

    Application.Wait DateAdd("s", 10, Now)


    IE.ExecWB 17, 0 '//select all
    IE.ExecWB 12, 2 '//Copy Selection
    ActiveSheet.PasteSpecial Format:="Text", link:=False, displayasicon:=False



    Range("A1:Z100").Select

我希望它会以类似于它在网站上的外观显示,但是,它会一起显示在一个列中(甚至不清晰)

标签: htmlexcelvba

解决方案


    Sheets("Sheet4").Select
    Range("A1:Z100") = ""
    Range("A1:Z100").Select
    Selection.ClearContents
    Application.Wait DateAdd("s", 2, Now) '//Loads



    IE.ExecWB 17, 0 '//select all from webpage
    IE.ExecWB 12, 2 '//Copy Selection



    Application.DisplayAlerts = False  '//Doesnt display alerts
    ActiveSheet.Paste


    Sheets("Sheet4").Select '//Selects sheet 4 again
    Range("A3:Q32").Select
    Selection.Copy

        'Creates a new sheet after & pastes content into it, formats

        Sheets.Add After:=ActiveSheet
        ActiveSheet.Paste
        Selection.Columns.AutoFit
        Selection.rows.AutoFit

此代码允许我以网页上的格式复制和粘贴网页中的数据


推荐阅读