Доброго времени суток, прошу помощи, при обновлении внешних данных возникает ошибка, (насколько я понимаю при разрыве соединения с источником возникает такая ошибка), т.е обновляет, но потом может выскочить данная ошибка и обновление приостанавливается, соответственно приостанавливается вся работа, приходится запускать вручную:
Просьба помочь изменить код, который отвечает за обновление этого источника данных:
[vba]
Код
Private Sub ОбновлениеПодключений()
' Макрос "Обновить подключения".
Dim i As Long
Обновление подключений. Worksheets("ЕВРО").Range("A500").QueryTable.Refresh BackgroundQuery:=False Установка таймера. Application.OnTime Now + TimeValue("00:00:05"), "ОбновлениеПодключений"
End Sub
[/vba]
Или же дописать код, который бы при появлении этой ошибки запускал бы текущий макрос автоматически.
Макрос полностью во вложении.
Доброго времени суток, прошу помощи, при обновлении внешних данных возникает ошибка, (насколько я понимаю при разрыве соединения с источником возникает такая ошибка), т.е обновляет, но потом может выскочить данная ошибка и обновление приостанавливается, соответственно приостанавливается вся работа, приходится запускать вручную:
Просьба помочь изменить код, который отвечает за обновление этого источника данных:
[vba]
Код
Private Sub ОбновлениеПодключений()
' Макрос "Обновить подключения".
Dim i As Long
Обновление подключений. Worksheets("ЕВРО").Range("A500").QueryTable.Refresh BackgroundQuery:=False Установка таймера. Application.OnTime Now + TimeValue("00:00:05"), "ОбновлениеПодключений"
End Sub
[/vba]
Или же дописать код, который бы при появлении этой ошибки запускал бы текущий макрос автоматически.
при появлении этой ошибки запускал бы текущий макрос автоматически
Можно не макрос запускать заново, а обновление включить в цикл. Правда, я бы всё же ограничила кол-во попыток. Например [vba]
Код
On Error Resume Next Do Application.Wait Now + TimeValue("00:00:05") Err.Clear Worksheets("ЕВРО").Range("A500").QueryTable.Refresh BackgroundQuery:=False i = i + 1 DoEvents Loop While Err.Number <> 0 And i < 10
If Err.Number <> 0 Then MsgBox "Не удалось обновить подключение!" Exit Sub End If
[/vba] Здесь каждые 5 секунд делается попытка обновить подключение и таких попыток 10. Так как у меня нет искомого файла-источника, то проверить смогла только на неудачное подключение
при появлении этой ошибки запускал бы текущий макрос автоматически
Можно не макрос запускать заново, а обновление включить в цикл. Правда, я бы всё же ограничила кол-во попыток. Например [vba]
Код
On Error Resume Next Do Application.Wait Now + TimeValue("00:00:05") Err.Clear Worksheets("ЕВРО").Range("A500").QueryTable.Refresh BackgroundQuery:=False i = i + 1 DoEvents Loop While Err.Number <> 0 And i < 10
If Err.Number <> 0 Then MsgBox "Не удалось обновить подключение!" Exit Sub End If
[/vba] Здесь каждые 5 секунд делается попытка обновить подключение и таких попыток 10. Так как у меня нет искомого файла-источника, то проверить смогла только на неудачное подключение Pelena
Pelena, "Черт возьми, Холмс! Но как??!!" Елена, Огромное спасибо!! Пока тестирую некоторые время, погляжу на более длительном временном отрезке.
Цитата
Так как у меня нет искомого файла-источника, то проверить смогла только на неудачное подключение
А с источником-файлом, сможете проверить (во вложении)?
Может еще сможете помочь с таким вопросом, можно ли дополнить макрос, чтобы он работал исключительно в оной книге, и чтобы при открытии другой книги он не выдавал ошибку . Т.е. чтобы макрос в этой книге работал безпрерывно, а я мог бы параллельно работать в другой книге. Возможно задать такой параметр, что бы макрос относился конкретно к этой книге, например поименно, и при открытии другой книги макрос не пытался обновить внешний источник в другой книге.
Pelena, "Черт возьми, Холмс! Но как??!!" Елена, Огромное спасибо!! Пока тестирую некоторые время, погляжу на более длительном временном отрезке.
Цитата
Так как у меня нет искомого файла-источника, то проверить смогла только на неудачное подключение
А с источником-файлом, сможете проверить (во вложении)?
Может еще сможете помочь с таким вопросом, можно ли дополнить макрос, чтобы он работал исключительно в оной книге, и чтобы при открытии другой книги он не выдавал ошибку . Т.е. чтобы макрос в этой книге работал безпрерывно, а я мог бы параллельно работать в другой книге. Возможно задать такой параметр, что бы макрос относился конкретно к этой книге, например поименно, и при открытии другой книги макрос не пытался обновить внешний источник в другой книге.evgenyforever