2012-08-23 1 views
0

여러 웹 페이지에서 데이터를 추출하는 데 Excel 웹 쿼리를 사용하려고합니다.Excel 웹 쿼리 - 10 회 이후의 제한 시간

"런타임 오류 1004 :이 인터넷 사이트에 URL.The 연결을 열 수 없습니다 할당보다 더 오래 걸렸다

코드는 내가 오류 메시지가 후 처음 10 개 루프에 대해 잘 실행

: 내가 어떤 pointers.The 웹 사이트 링크를 부탁드립니다

시간 "전체 코드는 다음과 같습니다 here

입니다

Sub DataPull() 
Dim page As Integer 
Dim Summary As Worksheet 
Dim Query As Worksheet 
Dim x As Integer 
Dim n As Integer 

Set Summary = ActiveWorkbook.Sheets("Summary") 
Set Query = ActiveWorkbook.Sheets("Query") 

x = 2 

For n = 1 To 11 
With 
Query.QueryTables.Add(Connection:="URL;http://www.skmm.gov.my/link_file/registers1/_ 
aa2.aspcc=83885232640314699294053&vl=&aa=celcom_cell&fpg=" &n,_ 
Destination:=Query.Cells(1, 1)) 
.Name = "aa2.asp?cc=83885232640314699294053&vl=&aa=celcom_cell&fpg=1" 
.FieldNames = True 
.RowNumbers = False 
.FillAdjacentFormulas = False 
.PreserveFormatting = True 
.RefreshOnFileOpen = False 
.BackgroundQuery = False 
.RefreshStyle = xlOverwriteCells 
.SavePassword = False 
.SaveData = True 
.AdjustColumnWidth = True 
.RefreshPeriod = 0 
.WebSelectionType = xlAllTables 
.WebFormatting = xlWebFormattingNone 
.WebPreFormattedTextToColumns = True 
.WebConsecutiveDelimitersAsOne = True 
.WebSingleBlockTextImport = False 
.WebDisableDateRecognition = False 
.WebDisableRedirections = False 
.Refresh BackgroundQuery:=False 
End With 


Query.Range("A6:H35").Copy Destination:=Summary.Range("A" & x) 
x = x + 30 
Query.QueryTables(1).Delete 

Next n 
End Sub` 

답변

1

나는 완전히 다른 문제가 있었지만 완전히 다른 웹 페이지가있었습니다. 나는 12 페이지의 내용을 가져오고 있었고, 10 페이지에서 멈추었습니다. 각 반복 끝에 wait 문을 배치하면 문제가 "고정"된다는 것을 알게되었습니다.

Application.Wait Now() + TimeValue("00:00:05") 

나는 어떤 타이밍이 당신에게 효과가 있는지 듣고 싶습니다. 나는 5 초가 나를 위해 일했다는 것을 안다. 그러나 나는 더 낮은 것을 시도하지 않았다. 나는 그것이 작동하도록했습니다, 그것이 내가 필요로하는 전부였습니다.

Microsoft에서 구성 가능한 시간 초과 값을 지정하거나 특정 시간 동안 배경 쿼리를 기다린 다음 취소 할 수있는 방법을 제공한다면 좋을 것입니다. 그러나 아아, 나는 방법을 찾지 못했습니다. 즉,이 쿼리는 기본 사이트를 쿼리 할 때 발생하는 문제와 달리 빠르게 연속적으로 10 개의 웹 쿼리를 프로그래밍 방식으로 생성, 새로 고침 및 삭제하는 것을 좋아하지 않는 Excel의 문제인 것으로 보입니다.