html - 如何通过 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
我希望它会以类似于它在网站上的外观显示,但是,它会一起显示在一个列中(甚至不清晰)
解决方案
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
此代码允许我以网页上的格式复制和粘贴网页中的数据
推荐阅读
- python - virtualenv 中的 Python 版本 - ubuntu 16.04
- python - 如何在Python中删除一些字符串
- python - 如何在另一个数据框中找到数据框中一列的值
- sql - 创建 Sql 触发器以根据其他表中的字段添加新行
- javascript - 通过 FileReader 读取文件后无法提取 Uint8Array
- reactjs - 开玩笑地访问状态和方法的问题
- c# - 为 mac 构建 c#
- javascript - 为组件的特定部分设置授权
- javascript - 使用 HTML5/CSS3/Javascript 从文本块中拖放单词或短语
- javascript - gulp 如何处理 then() 的 Promise?