Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Разделение одного столбца на 31 с равным количеством строк
 
Всем привет! Прошу помощи.

Есть несколько столбцов с 744 или 720 (Количество часов в месяце) строками подряд, без пробелов.
Нужен макрос, который бы при запуске предлагал выделить нужные столбцы и делил каждый целый столбец на 31 или 30 столбцов по 24 строки на новый лист. То есть 31 или 30 дней по 24 часа.

И нужен макрос, делающий обратно. Из одной матрицы в один столбик

Пример прилагается.
Изменено: Артем Колчин - 08.12.2020 15:52:14
Загрузка чисел из файла с сайта в искомые столбцы и строки
 
Всем доброго времени суток!
На неком сайте ежемесячно выкладывается файл (Пример 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
Страницы: 1
Наверх