Всем доброго времени суток! На неком сайте ежемесячно выкладывается файл (Пример 04 НН, 09 Ярославль, 10 Ростов), который формируется ссылкой, где меняется лишь код региона и дата. В этом файле есть столбец с датами по дням и пиковыми часами. Количество дней ежемесячно может быть разное, столбец "Фактический час может отсутствовать". И есть таблица (Пример "Часы пик", в шапке в 1 строке регион, 2 строка код региона(из файла с сайта), 3 строка название столбца из файла с сайта(названия совпадают). И в первом столбце месяцы. Нужно сделать так, чтобы при выборе даты на листе "Worksheet" и запуске макроса, поочередно по кодам региона открывались файлы с сайта, и дата и пиковые часы из столбцов с нужными названиями копировались в таблицу, в нужные регионы и даты. Сейчас я добился того что файл находится и скачивается через раз, через раз копируется столбик с датой, но в основном выходит ошибка Runtime 1004 "имя не найдено или совпадает с чем-то". Проблема еще в том что в файле с сайта количество дней с пиковыми часами каждый месяц могут быть разные, конкретный диапазон копирования указать не получится, может захватить лишнего. И столбец "фактический час может отсутствовать". Примеры во вложении. Помогите пожалуйста дописать код!
Код
Sub Загрузка_часов() 'Объявляем переменные
Dim URL As String, DestinationFile As String
Dim C As Integer 'для столбика
Dim R As Integer 'для строки
Dim yy As Integer
Dim mm As Integer
Dim code As String
Application.ScreenUpdating = False 'отключаем обновление экрана
R = Лист4.[A6] 'Определяем номер строки с гиперссылками по которым нужно заполнить
yy = Лист4.[A1] 'Год
mm = Лист4.[A2] 'Месяц
code1 = Cells(2, 2) 'код региона с сайта
Workbooks.Open Filename:= _
"http://elira.pro/Forecast/DownloadForecastFile/"; & "/" & code1 & "/" & yy & "/" & mm & "?type=2"
Range("B7:B29").Copy
ActiveWindow.Close
Cells(R + 1, 1).Select
ActiveSheet.Paste
For C = 2 To 37 Step 4 'цикл по столбикам в установленном диапазоне в каждом 4 столбике
code2 = Cells(2, C)
Workbooks.Open Filename:= _
"http://elira.pro/Forecast/DownloadForecastFile/"; & "/" & code2 & "/" & yy & "/" & mm & "?type=2"
Range("C7:E29").Copy
ActiveWindow.Close
Cells(R + 1, C + 1).Select
ActiveSheet.Paste
Next 'следующая ячейка установленного диапазона
Application.ScreenUpdating = True 'включаем обновление экрана
MsgBox "Загрузка пиковых часов за " & Лист4.[A11] & " " & Лист4.[D11] & " успешно завершена!", vbInformation
End Sub
Артем Колчин, приветствую. У меня вообще по кнопке скачать выдает ошибку, какой бы я период не выбирал. Зато работаю такие ссылки, но данные надо парсить.
Так что пока не заработают ваши ссылки, помочь нечем.
Oleg Boyaroff, Спасибо. Видимо на сайте какой то глюк. Иногда скачивает, иногда ошибка. А на примере приложенных файлов не сможете подсказать? Допустим что сайт наладится, и файлы будут открываться в нужном порядке. Что добавить в код чтобы из этих файлов брались только значения часов и подставлялись в нужные диапазоны таблицы?