Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 15.05.2014
Сообщений: 80
1
Excel

Макрос на копирование диапазона ячеек со смещением и транспонированием по 2 ячейки

26.01.2021, 22:45. Показов 1203. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть код, который необходимо интерпретировать.
Суть его работы сейчас в том что он заходит в каждую книгу в папке(28-31 в зависимости от месяца) и копирует оттуда данные.

Есть массив данных строки и столбцы
В Строку данные за месяц от первого столбца наименования.

Объясняю:
A1 наименование
B1-Z1 данные за месяц

Необходимо:

Наименование поставить в ячейку A1, после чего второе наименование будет скопировано на тот диапазон, на котором закончится перестановка данных с первой строки. Т.е. предположим A31.

Данные за месяц переставить из строчки в столбец по 2 ячейки.
B2-C2 в B2-С2 , E2-F2 в B3-C3 и т.д. в другом листе

Сделать это заходя в каждую книгу месяца и брать оттуда информацию за две ячейки получается, но работает долго и только по одному наименованию. т.е. приходится руками переставлять диапазон и опять запускать макрос по всем 31 книгам.

Переделать у меня самостоятельно не получилось, прошу помощи.

Макрос полусамопал с гуглом, так что прошу прощения.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub EMS_TRY()
ActWbMonth = ActiveWorkbook.Name
'BookMonth = InputBox("Какой месяц?(ря)", "Вопрос")
'BookDay = InputBox("До какого числа?", "Вопрос")
Dim s As String, fldr As String
With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        fldr = .SelectedItems(1)
End With
 
fldr = fldr & IIf(Right(fldr, 1) = Application.PathSeparator, "", Application.PathSeparator)
Filename$ = Dir(fldr & "*.xlsm")
Application.ScreenUpdating = False
Dim noi As String
noi = 0
Do While Filename$ <> ""
    With Workbooks.Open(fldr & Filename$)
        'действия с книгой
        '.Close
        'MsgBox "Это " & Filename$
        'Application.Run "'" & Filename$ & "'!Module34.EMS" Запуск макроса из другой книги
        Dim DTO As Integer
        Dim ActWb As String
        ActWb = ActiveWorkbook.Name 'Записываем активную книгу чтобы вернуться к ней
        DTO = DTO + 2
        'DTO = InputBox("За какое число отчёт?", "Вопрос")
        'DTO = DatePart("d", Now)Бывшая схема работы с датой по выборке даты.
        Sheets("ЛистZ").Select
        '1.1
        Range("C2:D49").Select 'То что необходимо исправить.!!!!!!!!!!!!!
        Selection.Copy
        Windows(ActWbMonth).Activate '
        Sheets("Лист4").Select
        Cells(5, 2 + DTO).Select 'Выбор даты на листе отчёта
        ActiveSheet.Paste
        
        
    Application.CutCopyMode = False
        Windows(ActWb).Activate 'Возвращаемся к уже неактивной книге
        Workbooks(ActWb).Close SaveChanges:=False
    End With
    Filename$ = Dir
    If noi = 30 Then
      Exit Do
    End If
    noi = noi + 1
Loop
Application.ScreenUpdating = True
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2021, 22:45
Ответы с готовыми решениями:

Копирование диапазона ячеек со смещением вниз
Добрый день! Помогите пожалуйста. Нужно назначить макрос на клавишу который бы копировал диапазон...

Копирование диапазона ячеек
Уважаемые форумчане, подскажите, пожалуйста. Хочу скопировать диапазон ячеек с одного листа на...

Зависает макрос на выделение диапазона ячеек
Создала макрос на выделение ячеек через одну. Тестировала на таблице с 20-ю строками - все...

Копирование диапазона ячеек с гиперссылками
Всем привет! Очень нужна помощь, сам не разобрался, хотя уже второй день сижу. Есть следующий...

0
26.01.2021, 22:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2021, 22:45
Помогаю со студенческими работами здесь

Копирование значений диапазона ячеек
Здравствуйте! у меня есть код, который копирует ячейки с листа1 на лист2...

Копирование диапазона ячеек по условию
Здравствуйте! Не могу понять почему не работает, что я не так тут делаю: Sub...

Копирование диапазона ячеек с гиперссылками
Добрый вечер! Подскажите, пожалуйста, как скопировать из одного документа excel в другой диапазон...

Макрос на сумму диапазона ячеек со множеством листов
Всем доброго времени дня. В Vba очень новый человек, появилась необходимось в таковом макросе. Есть...

Макрос только для ячеек указанного диапазона
Люди, хелп, сбился с ног, бегая по инету. Как сделать так, чтоб нижеследующий макрос запускался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru