Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
5 / 5 / 0
Регистрация: 02.01.2017
Сообщений: 164
1

Изменить макрос переноса данных с листа на другой лист

28.02.2017, 02:14. Показов 1791. Ответов 6
Метки нет (Все метки)

Ребята что в этом коде нужно изменить чтобы он мог все данные в ячейках из Листа1 в пределах 22 столбца ,а количество строк без ограничения, перенести на Лист2.и главное мог все цветные ячейки Листа1 так же окрасить и на Листе2 после копирования.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub Копир()
Dim a
With Sheets("Лист1")
a = .Range(.Cells(27, 1), .Cells(Cells(.Rows.Count, 1).End(xlUp).Row, 22)).Value
End With
 
With Sheets("Лист2")
.[a27].Resize(UBound(a, 1), UBound(a, 2)).Value = a
End With
 
End Sub
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2017, 02:14
Ответы с готовыми решениями:

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

Копирование ячеек столбца одного листа и переноса на другой лист
Доброго времени суток всем вам, уважаемые форумчане. В виду рабочей необходимости, я начал...

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

Макрос для копирования данных с листа на лист с сортировкой
здравствуйте!! помогите в решении задачи. есть экселевский файл, нужен макрос для кнопки, при...

6
73 / 72 / 29
Регистрация: 13.10.2014
Сообщений: 155
28.02.2017, 02:35 2
В код листа 1:
Visual Basic
1
2
3
4
5
6
Sub Копир_1()
With Sheets(2)
Range(Cells(27, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 22)).Copy Destination:=.[a27]
.Select
End With
End Sub
0
5 / 5 / 0
Регистрация: 02.01.2017
Сообщений: 164
28.02.2017, 02:56  [ТС] 3
Спасибо за новый код,но есть небольшой тормозящий фактор при исполнении макроса,можно ли это учесть в коде .На скрине сообщение выскакивающее при копировании тех столбцов в которых есть выпадающие списки.
0
Миниатюры
Изменить макрос переноса данных с листа на другой лист  
5 / 5 / 0
Регистрация: 02.01.2017
Сообщений: 164
28.02.2017, 03:06  [ТС] 4
Их довольно много в Листе1 и приходится при каждом новом копировании сидеть и каждый раз отвечать на эти сообщения, что не делает процесс быстрым
0
73 / 72 / 29
Регистрация: 13.10.2014
Сообщений: 155
28.02.2017, 04:35 5
Лучший ответ Сообщение было отмечено Aleks 1978 как решение

Решение

так попробуйте:
Visual Basic
1
2
3
4
5
6
7
8
Sub Копир_2()
Application.DisplayAlerts = False
With Sheets(2)
Range(Cells(27, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 22)).Copy Destination:=.[a27]
.Select
End With
Application.DisplayAlerts = True
End Sub
1
5 / 5 / 0
Регистрация: 02.01.2017
Сообщений: 164
28.02.2017, 20:38  [ТС] 6
Благодарю !!! работает отлично

Добавлено через 4 часа 9 минут
Помогите пожалуйста вот с этими двумя похожими кодами(они в модуле книги хранятся),они тоже переносят данные с Листа1 в котором много выпадающих списков на другие Листы,как их подредактировать чтобы тоже не мешали выскакивающие сообщения об именованных диапазонах.Очень буду признателен
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Копирование_строк_по_критериям_на_Лист3 ()
    Dim X As Range, t1$, t2$, t3$, t4$, i&
 
    i = 27
    t1 = [b27]
    t2 = [f27]
    t3 = [h27]
    t4 = [i27]
    For Each X In Intersect(Sheets(1).UsedRange, Sheets(1).Columns(2)).Cells
        If Trim(X) = t1 Then
            If Trim(X.Offset(, 4)) = t2 Then
                If Trim(X.Offset(, 6)) = t3 Then
                    If Trim(X.Offset(, 7)) = t4 Then
                i = i + 1
                X.EntireRow.Cells(1).Resize(1, 22).Copy Cells(i, 1)
            End If
        End If
    End If
End If
Next
 End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Копирование_строк_по_критериям_на_Лист4 ()
    Dim c As Range, t1$, t2$, t3$, t4$, i&
 
    i = 27
    t1 = [b27]
    t2 = [g27]
    t3 = [h27]
    t4 = [i27]
    For Each c In Intersect(Sheets(1).UsedRange, Sheets(1).Columns(2)).Cells
        If Trim(c) = t1 Then
            If Trim(c.Offset(, 5)) = t2 Then
                If Trim(c.Offset(, 6)) = t3 Then
                    If Trim(c.Offset(, 7)) = t4 Then
                i = i + 1
                c.EntireRow.Cells(1).Resize(1, 22).Copy Cells(i, 1)
            End If
        End If
    End If
End If
Next
 End Sub
0
73 / 72 / 29
Регистрация: 13.10.2014
Сообщений: 155
01.03.2017, 02:49 7
Лучший ответ Сообщение было отмечено Aleks 1978 как решение

Решение

добавьте две волшебные строки:
Visual Basic
1
2
3
4
5
6
Sub  Копирование_строк_по_критериям_на_..... ()
Application.DisplayAlerts = False
......
......
Application.DisplayAlerts = True
End Sub
Ваши два макроса копирования просятся в один, принимающий параметром номер листа.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2017, 02:49

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Ускорить действие макроса переноса данных на другой лист
Здравствуйте, имеется макрос для переноса данных на другой лист, но когда данных много (например:...

Использование макросов для переноса данных с одного листа на другой
Доброго дня! Нужна помощь в написании макросов! На основании информации на листе "Табель" нужно ...

Добавление данных из листа на другой лист с новой строки
Добрый день, уважаемые форумчане! Прошу у вас помощи по созданию скрипта в таблицу (во...

Перенос данных с ячеек одного листа на другой лист
Добрый день! Помогите пожалуйста автоматизировать заполнение таблицы (графика на месяц). Excel...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.