Копирование значений
Модератор: Naeel Maqsudov
Здравствуйте! Нужно чтобы значения ячеек столбцов E, F и G листа "16" с помощью макроса копировались в ячейки столбцов J, K и L листа "Список"? Значения должны соответствовать участникам соревнования, отображающихся в столбце "B". Можно ли такое сделать? Нужен именно макрос!
- Вложения
-
- new 5..zip
- (86.03 КБ) 31 скачивание
Можно так:
Пример во вложении. Откройте и запустите макрос "Main".
Код: Выделить всё
Sub Main()
Dim x As Range, ws1 As Worksheet, ws2 As Worksheet, i As Long
Application.ScreenUpdating = False
Set ws1 = Sheets("16"): Set ws2 = Sheets("Список")
For i = 4 To ws1.Cells(Rows.Count, 2).End(xlUp).Row
Set x = ws2.[B:B].Find(ws1.Cells(i, 2))
If Not x Is Nothing Then x.Offset(, 8).Resize(, 3).Value = ws1.Cells(i, 5).Resize(, 3).Value
Next
End Sub
Спасибо огромное! То что нужно!
Возникла небольшая проблема... Когда я добавляю все таблицы на лист (пример на листе 16 (2) во вложении) макрос работает, только копирует значения листа 16. Здесь я понял почему, - в макросе прописан лист 16. Я пробовал менять в макросе на 16 (2), - макрос перестаёт работать, точнее работает, но значения копирует далеко не те которые нужно. Что нужно ещё исправить? И как прописать чтобы данные копировались не с листа с определённым именем, а с открытого в данный момент листа, с которого собственно и будет запускаться макрос. Это нужно потому что лист 16 будет использоваться как шаблон, с него будут создаваться копии с разным составом участников, но таблица A3:G19 с которой будут копироваться значения на лист "Список" всегда будет на одном месте.
- Вложения
-
- new 5_3..zip
- (82.92 КБ) 36 скачиваний
Посмотрите вложение. Для переноса данных, активируйте требуемый лист и запустите макрос "MainXX", который находится в программном модуле "Module2". Данные будут перенесены из активного листа (не зависимо от его имени) в лист "Список".
Т. к. у Вас внизу таблицы находятся дополнительные записи, то обязательное условие в том, чтобы в столбце "B", после последней фамилии в списке, была хотя бы одна пустая ячейка. Именно это условие макрос идентифицирует, как конец списка фамилий.
Т. к. у Вас внизу таблицы находятся дополнительные записи, то обязательное условие в том, чтобы в столбце "B", после последней фамилии в списке, была хотя бы одна пустая ячейка. Именно это условие макрос идентифицирует, как конец списка фамилий.
Спасибо огромное! Всё отлично работает! Если от меня что-то требуется, помимо благодарности, - напишите в личку. Ещё раз спасибо!
Рад, что моя помощь оказалась Вам полезной. Обращайтесь. Можно в частном порядке, через e-mail.