2017-10-20 136 views
0

我試圖從WSJ期貨中提取表格,但我希望能夠更改網址中的日期。我的希望是使用下面的代碼,但使網站的單元格參考。任何想法如何使這項工作或一個不同的代碼,將使我與網站的單元格參考相同的結果?在GetWebTable中爲連接使用單元格引用

Sub GetWebTable() 
    With ActiveSheet.QueryTables.Add(Connection:="http://www.wsj.com/mdc/public/page/2_3023-fut_metal-futures-20170901.html?mod=mdc_pastcalendar", Destination:=Range("a1")) 
     .Refresh BackgroundQuery:=False 
     .SaveData = True 
    End With 
End Sub 

回答

0

試試這個。它會把你的桌子拿走。仔細看一下腳本中的Connection:="URL;" & URL,部分。你搞砸了。

Sub GetWebTable() 
    Dim URL As String 
    URL = "http://www.wsj.com/mdc/public/page/2_3023-fut_metal-futures-20170901.html?mod=mdc_pastcalendar" 

    With ActiveSheet.QueryTables.Add(Connection:="URL;" & URL, Destination:=Range("A1")) 
     .Refresh BackgroundQuery:=False 
     .SaveData = True 
    End With 
End Sub 

編輯:

如果你喜歡解析比其他任何特定的表,你只需要找到就像我在下面做了它的索引號:

Sub GetWebTable() 
    Dim URL As String 
    URL = "http://www.wsj.com/mdc/public/page/2_3023-fut_metal-futures-20170901.html?mod=mdc_pastcalendar" 

    With ActiveSheet.QueryTables.Add(Connection:="URL;" & URL, Destination:=Range("A1")) 
     .WebTables = "3" 'You can parse any specific table as well. For more than one table change the parameter "2,3" like this 
     .Refresh 
    End With 

End Sub 
+0

這拉表,但因爲它也具有編碼的網址,它每次都會提取今天的數據,並且不會隨着日期的變化而跟隨A1地址。 (日期是代碼的20170901部分)有關如何避開日曆功能的其他想法? –