Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Загрузка чисел из файла с сайта в искомые столбцы и строки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Загрузка чисел из файла с сайта в искомые столбцы и строки (Макросы/Sub)
Загрузка чисел из файла с сайта в искомые столбцы и строки
kol41n Дата: Четверг, 22.10.2020, 11:21 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Всем доброго времени суток!
На неком сайте ежемесячно выкладывается файл, который формируется ссылкой, где меняется лишь код региона и дата. В этом файле есть столбец с датами по дням и пиковыми часами. Количество дней ежемесячно может быть разное, столбец "Фактический час может отсутствовать".
И есть таблица, в шапке в 1 строке регион, 2 строка код региона(из файла с сайта), 3 строка название столбца из файла с сайта(названия совпадают). И в первом столбце месяцы.
Нужно сделать так, чтобы при выборе даты на листе "Worksheet" и запуске макроса, поочередно по кодам региона открывались файлы с сайта, и дата и пиковые часы из столбцов с нужными названиями копировались в таблицу, в нужные регионы и даты.
Сейчас я добился того что файл находится и скачивается через раз, через раз копируется столбик с датой, но в основном выходит ошибка Runtime 1004 "имя не найдено или совпадает с чем-то".
Проблема еще в том что в файле с сайта количество дней с пиковыми часами каждый месяц могут быть разные, конкретный диапазон копирования указать не получится, может захватить лишнего.
И столбец "фактический час может отсутствовать".
Примеры во вложении.
Помогите пожалуйста дописать код!

[vba]
Код
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
[/vba]
К сообщению приложен файл: 1469999.xlsm (64.8 Kb) · 09_.xlsx (8.8 Kb)


Сообщение отредактировал kol41n - Четверг, 22.10.2020, 11:31
 
Ответить
СообщениеВсем доброго времени суток!
На неком сайте ежемесячно выкладывается файл, который формируется ссылкой, где меняется лишь код региона и дата. В этом файле есть столбец с датами по дням и пиковыми часами. Количество дней ежемесячно может быть разное, столбец "Фактический час может отсутствовать".
И есть таблица, в шапке в 1 строке регион, 2 строка код региона(из файла с сайта), 3 строка название столбца из файла с сайта(названия совпадают). И в первом столбце месяцы.
Нужно сделать так, чтобы при выборе даты на листе "Worksheet" и запуске макроса, поочередно по кодам региона открывались файлы с сайта, и дата и пиковые часы из столбцов с нужными названиями копировались в таблицу, в нужные регионы и даты.
Сейчас я добился того что файл находится и скачивается через раз, через раз копируется столбик с датой, но в основном выходит ошибка Runtime 1004 "имя не найдено или совпадает с чем-то".
Проблема еще в том что в файле с сайта количество дней с пиковыми часами каждый месяц могут быть разные, конкретный диапазон копирования указать не получится, может захватить лишнего.
И столбец "фактический час может отсутствовать".
Примеры во вложении.
Помогите пожалуйста дописать код!

[vba]
Код
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
[/vba]

Автор - kol41n
Дата добавления - 22.10.2020 в 11:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Загрузка чисел из файла с сайта в искомые столбцы и строки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!