Страницы: 1
RSS
Загрузка чисел из файла с сайта в искомые столбцы и строки
 
Всем доброго времени суток!
На неком сайте ежемесячно выкладывается файл (Пример 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
Изменено: Артем Колчин - 22.10.2020 12:53:40
 
Артем Колчин, приветствую.
У меня вообще по кнопке скачать выдает ошибку, какой бы я период не выбирал.
Зато работаю такие ссылки, но данные надо парсить.

Так что пока не заработают ваши ссылки, помочь нечем.
 
Oleg Boyaroff, Спасибо. Видимо на сайте какой то глюк. Иногда скачивает, иногда ошибка.
А на примере приложенных файлов не сможете подсказать?
Допустим что сайт наладится, и файлы будут открываться в нужном порядке. Что добавить в код чтобы из этих файлов брались только значения часов и подставлялись в нужные диапазоны таблицы?
Изменено: Артем Колчин - 22.10.2020 14:40:13
 
Артем Колчин, вернитесь в своё сообщение и удалите то, что Вы ршибочно считаете цитатой. И запомните - кнопка цитирования не для ответа!
Страницы: 1
Наверх