Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Ошибка при загрузке данных из Веба если сайт не существует. Как пропустить?

Автор Snekich, 18.11.2011, 09:01

« назад - далее »

Snekich

Есть макрос:

Sheets("Name").Select
        With ActiveSheet.QueryTables.Add(Connection:="URL;" & Sheets("Ссылки").Range("A1"), Destination:=Range("В1"))
.Name = "PRO"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "2"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With

Если адрес указанный в ячейке Sheets("Ссылки").Range("A1") не существует, то макрос остановится и вылезет ошибка.
Как сделать так что бы в ошибка не вылезала, и макрос просто не загружал информацию с этого сайта и продолжал выполняться дальше?

Подскажите хитрость пожалуйста?

ShAM


Snekich

Цитата: ShAM от 18.11.2011, 10:30
On Error Resume Next
Не подойдет?


On Error GoTo Next1
Sheets("Name").Select
        With ActiveSheet.QueryTables.Add(Connection:="URL;" & Sheets("Ссылки").Range("A1"), Destination:=Range("В1"))
.Name = "PRO"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "2"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
Next1:

Спасибо за совет. Не знал такого оператора.
Вот так может быть, но пока нет возможности проверить.... На конце Next1: двоеточие надо ставить?

А еще, как сделать, что бы этот макрос был в операторе For i=1 to n
И что бы в строке
With ActiveSheet.QueryTables.Add(Connection:="URL;" & Sheets("Ссылки").Range("A1"), Destination:=Range("В1"))
ссылки на ячейки
Sheets("Ссылки").Range("A1")
и
Range("В1")
менялись в соответствии со значением i
т.е. при i=1

With ActiveSheet.QueryTables.Add(Connection:="URL;" & Sheets("Ссылки").Range("A1"), Destination:=Range("В1"))

при i=2

With ActiveSheet.QueryTables.Add(Connection:="URL;" & Sheets("Ссылки").Range("A2"), Destination:=Range("В2"))

и т.д.

?


ShAM

ЦитироватьНа конце Next1: двоеточие надо ставить?
Да.

ЦитироватьRange("В1")
менялись в соответствии со значением i
Range("В" & i) попробуйте (если правильно понял).