0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
1

Макрос для обьединения данных

24.05.2019, 17:21. Показов 899. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проимер;
Данные находятся в колонках ABCDEFG и IJKLMNO. Необходимо обьединить эти данные на другом листе под ABCDEFG
Допустим есть 100 строк инфы под ABCDEFG и 200 строк инфы под IJKLMNO. Должно получиться на другом листе 300 строк инфы под ABCDEFG. С уважением А. Таран
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2019, 17:21
Ответы с готовыми решениями:

макрос для обьединения таблиц со всех листов одной книги в одну
как обьединить таблицы или все листы в одной книге в один лист

Макрос для переноса (с удалением) данных с одного листа на другой при появлении дополнительных данных в ячейке
Уважаемые форумчане, доброго дня. Прошу помочь по следующему вопросу: Во вложении файл Excel,...

Макрос для подсчета сумм для данных из разных книг
Итак, имеются исходные данные находящиеся в различных многостраничных книгах .xls (табличные...

Макрос для группировки данных
Доброго дня всем! Волнует следующая проблема. Необходимо написать макрос, позволяющий...

18
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
24.05.2019, 17:30  [ТС] 2
Есть строки с данными в ABCDEFG( число строк может меняться) и IJKLMNO(число строк может меняться) на одном листе.
Нужен макрос скопировать эти строки на другой лист под ABCDEFG. С уважением А Таран
0
2698 / 1683 / 768
Регистрация: 23.03.2015
Сообщений: 5,325
24.05.2019, 19:09 3
Александр Таран,

Как вариант с листа 1 на лист 2...

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub For_Sasha ()
LR1 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
LR2 = Sheets(1).Cells(Rows.Count, 9).End(xlUp).Row
 
With Sheets(1)
A = .Range(.Cells(1, 1), .Cells(LR1, 7))
B = .Range(.Cells(1, 9), .Cells(LR2, 15))
 
End With
 
With Sheets(2)
.Range("A1").Resize(LR1, 7) = A
.Cells(LR1 + 1, 1).Resize(LR2, 7) = B
End With
 
End Sub
1
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
25.05.2019, 08:38  [ТС] 4
А почему так не работает? Выдает ошибку 400
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub For_Sasha()
LR1 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
LR2 = Sheets(1).Cells(Rows.Count, 9).End(xlUp).Row
LR3 = Sheets(1).Cells(Rows.Count, 17).End(x1Up).Row
 
With Sheets(1)
A = .Range(.Cells(1, 1), .Cells(LR1, 7))
B = .Range(.Cells(1, 9), .Cells(LR2, 15))
C = .Range(.Cells(1, 17), .Cells(LR3, 23))
 
End With
 
With Sheets(2)
.Range("A1").Resize(LR1, 7) = A
.Cells(LR1 + 1, 1).Resize(LR2, 7) = B
.Cells(LR1 + 1, 1).Resize(LR3, 7) = C
End With
 
End Sub
0
2698 / 1683 / 768
Регистрация: 23.03.2015
Сообщений: 5,325
25.05.2019, 10:02 5
Александр Таран,

вы файлик прикрепите....

Добавлено через 9 минут
и строчка 16:

Visual Basic
1
.Cells(LR1 + LR2 + 1, 1).Resize(LR3, 7) = C
0
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
25.05.2019, 10:21  [ТС] 6
Narimanych
А Вы любые данные внесите в эти столбцы.
Любые данные в ABCDEFG, IJKLMNO, QRSTUVW и т.д.
1111101, 2222202, 3333303 и т.д.
Должно получится:
ABCDEFG
1111101
2222202
3333303
и т.д.
Александр Таран
0
2698 / 1683 / 768
Регистрация: 23.03.2015
Сообщений: 5,325
25.05.2019, 10:25 7
Александр Таран,

Если я прошу прикрепить файл с ошибкой- значит проблема у вас в файле...
0
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
25.05.2019, 10:39  [ТС] 8
Хорошо попробую выслать файл

Добавлено через 3 минуты
Выслал файл

Добавлено через 8 минут
НУ меня файл сохраняется под xlsm Видимо поэтому не могу выслать
0
Модератор
Эксперт MS Access
11534 / 4743 / 765
Регистрация: 07.08.2010
Сообщений: 13,794
Записей в блоге: 4
25.05.2019, 10:42 9
Цитата Сообщение от Александр Таран Посмотреть сообщение
НУ меня файл сохраняется под xlsm Видимо поэтому не могу выслать
зазипуйте перед выкладыванием
1
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
25.05.2019, 10:47  [ТС] 10
Пробую
Вложения
Тип файла: zip Книга1.zip (15.6 Кб, 10 просмотров)
0
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
25.05.2019, 11:08  [ТС] 11
А как насчёт 4 и 9 строчек?
0
2698 / 1683 / 768
Регистрация: 23.03.2015
Сообщений: 5,325
25.05.2019, 11:32 12
Александр Таран,
В вашем файле сотрите строку
LR3 = Sheets(1).Cells(Rows.Count, 17).End(xlUp).Row

Создайте ее заново, скопировав
LR2 = Sheets(1).Cells(Rows.Count, 9).End(xlUp).Row

и еще:Вы не обратили внимание на
Цитата Сообщение от Narimanych Посмотреть сообщение
Александр Таран,
Как вариант с листа 1 на лист 2...
Поэтому для вашего случая код:

Проверьте и отпишитесь.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub For_Sasha()
LR1 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
LR3 = Sheets(1).Cells(Rows.Count, 17).End(xlUp).Row
 
With Sheets(2)
A = .Range(.Cells(1, 1), .Cells(LR1, 7))
B = .Range(.Cells(1, 9), .Cells(LR2, 15))
C = .Range(.Cells(1, 17), .Cells(LR3, 23))
 
End With
 
With Sheets(1)
.Range("A1").Resize(LR1, 7) = A
.Cells(LR1 + 1, 1).Resize(LR2, 7) = B
.Cells(LR1 + LR2 + 1, 1).Resize(LR3, 7) = C
End With
 
End Sub
0
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
25.05.2019, 12:59  [ТС] 13
Narimanych,
Огромное спасибо. Разобрался.
Все работает
0
2698 / 1683 / 768
Регистрация: 23.03.2015
Сообщений: 5,325
25.05.2019, 17:19 14
Александр Таран,

У вас в строке LR3 = Sheets(1).Cells(Rows.Count, 17).End(xlUp).Row вместо XLUP было нвписано X1UP
0
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
26.05.2019, 10:41  [ТС] 15
Narimanych,
С добавлением строки данных:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub For_Sasha()
LR1 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
LR2 = Sheets(1).Cells(Rows.Count, 9).End(xlUp).Row
LR3 = Sheets(1).Cells(Rows.Count, 17).End(xlUp).Row
LR4 = Sheets(1).Cells(Rows.Count, 25).End(x1Up).Row
 
With Sheets(1)
A = .Range(.Cells(1, 1), .Cells(LR1, 7))
B = .Range(.Cells(1, 9), .Cells(LR2, 15))
C = .Range(.Cells(1, 17), .Cells(LR3, 23))
D = .Range(.Cells(1, 25), .Cells(LR4, 31))
End With
 
With Sheets(2)
.Range("A1").Resize(LR1, 7) = A
.Cells(LR1 + 1, 1).Resize(LR2, 7) = B
.Cells(LR1 + LR2 + 1, 1).Resize(LR3, 7) = C
.Cells(LR1 + LR2 + LR3 + 1, 1).Resize(LR4, 7) = D
End With
 
End Sub
Правильно или нет?
0
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
27.05.2019, 16:03  [ТС] 16
Чет пропали все
0
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
28.05.2019, 14:14  [ТС] 17
С 3 диапазонами работает отлично. С 4 выдает ошибку 400

Добавлено через 20 минут
Нашел в чем дело , тикает
0
2698 / 1683 / 768
Регистрация: 23.03.2015
Сообщений: 5,325
28.05.2019, 14:56 18
Цитата Сообщение от Александр Таран Посмотреть сообщение
С 3 диапазонами работает отлично. С 4 выдает ошибку 400
Вы хоть посты читаете?

Прочтите пост 14 и посмотрите на свой код...
0
0 / 0 / 0
Регистрация: 29.04.2018
Сообщений: 77
28.05.2019, 20:14  [ТС] 19
Написал же ВСЁ ТИКАЕТ.
0
28.05.2019, 20:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2019, 20:14
Помогаю со студенческими работами здесь

Макрос для подтягивания и редактирования данных
Добрый день! Помогите создать макрос для следующей задачи: Необходимо в файле 01.xls создать...

Макрос для обновления данных в столбцах
Всем добрый день! Я только начинаю разбирать VBA,по этому следующая задачу, которую я опишу, для...

Макрос для преобразования формата данных
Доброго времени суток! У меня такая ситуация. Есть дата в текстовом формате (в строке формула...

VBA Макрос для защиты прошлых данных
Добрый день Форумчане! Как считаете, возможно ли вшить в Excel макрос защиты листа, который...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru