2017-10-20 15 views
0

WSJ Futures에서 테이블을 가져 오려고하지만 웹 주소에서 날짜를 변경할 수 있기를 원합니다. 내 희망은 아래의 코드를 사용하여 웹 사이트를 셀 참조로 만드는 것입니다. 이 작업을 수행하는 방법이나 웹 사이트의 셀 참조와 동일한 결과를 얻는 다른 코드에 대한 아이디어가 있습니까?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 부분 임) 달력 기능을 수행하는 방법에 대한 다른 아이디어는 무엇입니까? –