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