0
我试图从网页中拉一张桌子,到目前为止我成功地从网页中拉出一张桌子,不幸的是我在表格的每一行中都有一些链接,当我从网页中拉出桌子时,我得到的输出没有链接,只是文本,有没有什么办法可以使用VBA包括超链接从网页拉表。使用VBA从网页到Excel的数据提取
这里是我的代码:
Sub TableExample()
Dim IE As Object
Dim doc As Object
Dim strURL As String
strURL = "HERE I USED MY URL"
' replace with URL of your choice
Set IE = CreateObject("InternetExplorer.Application")
With IE
'.Visible = True
.Navigate strURL
Do Until .readyState = 4: DoEvents: Loop
Do While .Busy: DoEvents: Loop
Set doc = IE.Document
GetAllTables doc
.Quit
End With
End Sub
Sub GetAllTables(doc As Object)
' get all the tables from a webpage document, doc, and put them in a new worksheet
Dim ws As Worksheet
Dim rng As Range
Dim tbl As Object
Dim rw As Object
Dim cl As Object
Dim tabno As Long
Dim nextrow As Long
Dim I As Long
Set ws = Worksheets.Add
For Each tbl In doc.getElementsByTagName("TABLE")
tabno = tabno + 1
nextrow = nextrow + 1
Set rng = ws.Range("B" & nextrow)
rng.Offset(, -1) = "Table " & tabno
For Each rw In tbl.Rows
For Each cl In rw.Cells
rng.Value = cl.outerText
Set rng = rng.Offset(, 1)
I = I + 1
Next cl
nextrow = nextrow + 1
Set rng = rng.Offset(1, -I)
I = 0
Next rw
Next tbl
ws.Cells.ClearFormats
End Sub
感谢您的答复,我用你所说的,但它显示为“1145”如果它显示为“超链接到该网页的超链接”1145将是巨大的。 – user3248817
这不可能在一个excel单元中有多个链接。但是,如果您只需要为每个单元格存储第一个链接,则可以使用脚步从网页中提取文本,然后在命令“rng.Value = cl.outerText”中使用以下步骤添加链接到此单元格: 1)get html使用innerHTML属性到某个变量 2)在href =(可以有单引号或双引号)之后得到引号之间的子串3)添加超链接ws.Hyperlinks.Add锚点:= rng,地址:= YourVariableWithSubstring – AntonKolesnikov
对不起,if我解释错误,目前在一个单元格1145,但我希望该单元格为“1145”,但必须链接到“雷森 - 海云-2/1145/exklusive-kreuzfahrten-sea-cloud-2-reise”。 html“ – user3248817