Здравствуйте. Необходимо следущее:
На первом листе книги в столбце А расположен список URL. Необходимо выполнить веб-запрос по этим адресам (запрос однотипный, извлекаются определённые таблицы, а вот URL разные, вручную займёт огромное количество времени), каждый раз записывая его результаты в новый лист книги.
В интернете находил решения, в которых давался некоторый однотипный адрес, вида ?id=xxxxx и xxxxx менялись, мне же нужно просто пройтись по адресам из списка. Почему каждый раз на новый лист? Потому что длина таблиц разная, возможно, возникнут проблемы если копировать в строку за предыдущей таблицей на одном листе.
Вот пример кода для единичного запроса (как я понял, чтобы осуществить моё, нужно всё в цикл, который закончится на последнем адресе из столбца A; в connection= отправлять строку из A(i-го), а в destination указывать каждый раз новый лист, перед этим его создав ):
Код |
---|
Sub GetNames()
Application.Run "Êíèãà1!Ìàêðîñ2"
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://names.mongabay.com/most_common_surnames.htm", Destination:=Range( _
"$A$1"))
.CommandType = 0
.Name = "most_common_surnames"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.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
End Sub
|