Sub Macro1()
Dim URL As String
Dim Path As String
Dim i As Integer
For i = 2 To 50
If Range("Prices!E" & i).Value <> 1 Then
URL = Range("Prices!D" & i).Text
Path = Range("Prices!F" & i).Text
End If
Sheet19.Activate
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & URL _
, Destination:=ActiveSheet.Range("$A$1"))
.Name = _
"" & Path
.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 = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
//'In the Line above the above
//'Run time error '1004
//'An unexpected error has occured
End With
Next i
End Sub
Приведенный выше код создает ошибку в указанной строке. Поиск в Google по .Refresh BackgroundQuery показывает, что он очень требователен к циклам. Простое удаление строки ничего не показывает в Excel.
При текущем сообщении об ошибке код работает нормально для первого значения i, а затем прерывается.
Для ответа и комментариев-
TLDR: .Refresh BackgroundQuery: = False завершится ошибкой, если введенный вами запрос неверен или имеет неправильный формат. Проблема в этом случае заключалась в том, что цикл for ... next вызывал ячейки для использования в качестве URL, которые не содержат в них значений. Однако он потерпит неудачу каждый раз, когда запрос искажен.