Страницы: 1
RSS
Проблема с обновлением вебзапроса
 
веб-запрос:  
Set WebQ = Activesheet.QueryTables.Add(Connection:="URL;" & "любой сайт", Destination:=Range("A1"))  
With WebQ  
.Name = ""  
.FieldNames = True  
.RowNumbers = False  
.FillAdjacentFormulas = False  
.PreserveFormatting = True  
.RefreshOnFileOpen = False  
.BackgroundQuery = True  
.RefreshStyle = xlInsertDeleteCells  
.SavePassword = False  
.SaveData = True  
.AdjustColumnWidth = True  
.RefreshPeriod = 0  
.WebSelectionType = xlEntirePage  
.WebFormatting = xlWebFormattingNone  
.WebPreFormattedTextToColumns = True  
.WebConsecutiveDelimitersAsOne = True  
.WebSingleBlockTextImport = False  
.WebDisableDateRecognition = True  
.WebDisableRedirections = False  
End With  
 
WebQ.Refresh BackgroundQuery:=False - при обновление иногда возникает ошибка и программа останавливает свое действие, когда либо сайт задан не верно, либо по техничеким причинам (например кончился трафик), либо не получается получить информацию с таблиц. Обработать ошибку ,например такими командами как iserror() не получается, т.к. ошибка идет на уровне объект QueryTables. Ее обратка жижненно важна для программы. Подскажите как решить эту проблему.
 
Неужели ни кто не занает...
 
{quote}{login=MrViper}{date=14.02.2011 09:06}{thema=}{post}Неужели ни кто не занает...{/post}{/quote}  
небольшой пример не помешал бы, а любую ошибку  которую отслеживает VBA можно обработать так  
On Error Resume Next  
If Err.Number <> 0 Then Err.Clear: MsgBox "ERROR"
Спасибо
 
{quote}{login=R Dmitry}{date=14.02.2011 10:42}{thema=Re: }{post}{quote}{login=MrViper}{date=14.02.2011 09:06}{thema=}{post}Неужели ни кто не занает...{/post}{/quote}  
небольшой пример не помешал бы, а любую ошибку  которую отслеживает VBA можно обработать так  
On Error Resume Next  
If Err.Number <> 0 Then Err.Clear: MsgBox "ERROR"{/post}{/quote}  
 
Вот прикрепил
 
Sub go()  
Dim WebQ As Object, i As Integer, g As Boolean  
On Error GoTo miss  
Sheets(2).Select  
For i = 1 To Sheets(1).Cells(1, 1).Value  
   g = True  
   Set WebQ = ActiveSheet.QueryTables.Add(Connection:="URL;" & CStr(Sheets(1).Cells(i, 2)), Destination:=Range("A6"))  
   With WebQ  
   .Name = ""  
   .FieldNames = True  
   .RowNumbers = False  
   .FillAdjacentFormulas = False  
   .PreserveFormatting = True  
   .RefreshOnFileOpen = False  
   .BackgroundQuery = True  
   .RefreshStyle = xlInsertDeleteCells  
   .SavePassword = False  
   .SaveData = True  
   .AdjustColumnWidth = True  
   .RefreshPeriod = 0  
   .WebSelectionType = xlEntirePage  
   .WebFormatting = xlWebFormattingNone  
   .WebPreFormattedTextToColumns = True  
   .WebConsecutiveDelimitersAsOne = True  
   .WebSingleBlockTextImport = False  
   .WebDisableDateRecognition = True  
   .WebDisableRedirections = False  
   End With  
   On Error Resume Next  
   WebQ.Refresh BackgroundQuery:=False  
   If Err Then GoTo miss  
     
   'далее следует здоровенный кусок кода, поэтому "resume next" по этой причине вписать не получиться  
rr:  
Next i  
Exit Sub  
miss:  
If Err.Number = 1004 Then  
   Err.Clear  
   GoTo rr:  
Else  
   MsgBox "Ошибка"  
End If  
End Sub
Я сам - дурнее всякого примера! ...
 
хмм...недодумался до этого. Спасибо
Страницы: 1
Читают тему
Loading...