Копирование диапазона с неактивного листа
Guslykov
Дата: Среда, 16.09.2015, 12:04 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация:
0
±
Замечаний:
20% ±
Excel 2003
Всем привет. Может кто подскажет.Вот этот код работает, но только на активном листе. Но если вдруг выбран лист не "Пилот" вылетает ошибка. Если потом выбрать лист "Пилот" и продолжить выполнение макроса то работает нормально. [vba]Код
Worksheets("Пилот").Range(Cells(ac, 20), Cells(xa, 200)).Copy Worksheets("Пилот").Range(Cells(ac, 22), Cells(xa, 202))
[/vba] Спасибо. [moder]Используйте для кода кнопку #. Поправила.[/moder]
Всем привет. Может кто подскажет.Вот этот код работает, но только на активном листе. Но если вдруг выбран лист не "Пилот" вылетает ошибка. Если потом выбрать лист "Пилот" и продолжить выполнение макроса то работает нормально. [vba]Код
Worksheets("Пилот").Range(Cells(ac, 20), Cells(xa, 200)).Copy Worksheets("Пилот").Range(Cells(ac, 22), Cells(xa, 202))
[/vba] Спасибо. [moder]Используйте для кода кнопку #. Поправила.[/moder] Guslykov
Сообщение отредактировал Manyasha - Среда, 16.09.2015, 12:48
Ответить
Сообщение Всем привет. Может кто подскажет.Вот этот код работает, но только на активном листе. Но если вдруг выбран лист не "Пилот" вылетает ошибка. Если потом выбрать лист "Пилот" и продолжить выполнение макроса то работает нормально. [vba]Код
Worksheets("Пилот").Range(Cells(ac, 20), Cells(xa, 200)).Copy Worksheets("Пилот").Range(Cells(ac, 22), Cells(xa, 202))
[/vba] Спасибо. [moder]Используйте для кода кнопку #. Поправила.[/moder] Автор - Guslykov Дата добавления - 16.09.2015 в 12:04
Manyasha
Дата: Среда, 16.09.2015, 12:47 |
Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
898
±
Замечаний:
0% ±
Excel 2010, 2016
Guslykov , перед Cells тоже укажите нужный лист: [vba]Код
With Worksheets("Пилот") .Range(.Cells(ac, 20), .Cells(xa, 200)).Copy .Range(.Cells(ac, 22), .Cells(xa, 202)) End With
[/vba]
Guslykov , перед Cells тоже укажите нужный лист: [vba]Код
With Worksheets("Пилот") .Range(.Cells(ac, 20), .Cells(xa, 200)).Copy .Range(.Cells(ac, 22), .Cells(xa, 202)) End With
[/vba]Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение Guslykov , перед Cells тоже укажите нужный лист: [vba]Код
With Worksheets("Пилот") .Range(.Cells(ac, 20), .Cells(xa, 200)).Copy .Range(.Cells(ac, 22), .Cells(xa, 202)) End With
[/vba]Автор - Manyasha Дата добавления - 16.09.2015 в 12:47
Viv
Дата: Среда, 16.09.2015, 14:51 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
2
±
Замечаний:
60% ±
Excel 2003;Excel 2013
Активируй в начале Лист Worksheets("Пилот").Activate
Активируй в начале Лист Worksheets("Пилот").Activate Viv
www.vbastudio.ru
Ответить
Сообщение Активируй в начале Лист Worksheets("Пилот").Activate Автор - Viv Дата добавления - 16.09.2015 в 14:51
Guslykov
Дата: Среда, 16.09.2015, 15:28 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация:
0
±
Замечаний:
20% ±
Excel 2003
Manyasha, Нет не проходит история все равно лист должен быть активным иначе ошибка. Неужели без предварительного активирования никак нельзя
Manyasha, Нет не проходит история все равно лист должен быть активным иначе ошибка. Неужели без предварительного активирования никак нельзя Guslykov
Ответить
Сообщение Manyasha, Нет не проходит история все равно лист должен быть активным иначе ошибка. Неужели без предварительного активирования никак нельзя Автор - Guslykov Дата добавления - 16.09.2015 в 15:28
Guslykov
Дата: Среда, 16.09.2015, 15:30 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация:
0
±
Замечаний:
20% ±
Excel 2003
Viv, Это конечно сделать не сложно, но листы на экране мелькать будут это не очень приятно.
Viv, Это конечно сделать не сложно, но листы на экране мелькать будут это не очень приятно. Guslykov
Ответить
Сообщение Viv, Это конечно сделать не сложно, но листы на экране мелькать будут это не очень приятно. Автор - Guslykov Дата добавления - 16.09.2015 в 15:30
buchlotnik
Дата: Среда, 16.09.2015, 18:39 |
Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
Чтоб не мелькали используйте[[vba]Код
Application.ScreenUpdating = False
[/vba]а после процедуры неплохо бы вернуть true
Чтоб не мелькали используйте[[vba]Код
Application.ScreenUpdating = False
[/vba]а после процедуры неплохо бы вернуть true buchlotnik
Сообщение отредактировал buchlotnik - Среда, 16.09.2015, 18:44
Ответить
Сообщение Чтоб не мелькали используйте[[vba]Код
Application.ScreenUpdating = False
[/vba]а после процедуры неплохо бы вернуть true Автор - buchlotnik Дата добавления - 16.09.2015 в 18:39
AndreTM
Дата: Среда, 16.09.2015, 19:39 |
Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
500
±
Замечаний:
0% ±
2003 & 2010
А копировать нужно именно ячейки? Может быть, хватит и значений? Ну и Range() здесь - функция, точка не нужна... [vba]Код
With Worksheets("Пилот") Range(.Cells(ac, 22), .Cells(xa, 202)).Value = Range(.Cells(ac, 20), .Cells(xa, 200)).Value End With
[/vba]иникаких .ScreenUpdating... Да, кстати, если ac и xa - это переменные для номеров столбцов "AC" и "XA", то вот именно тогда можно использовать .Range и собрать символьное имя диапазона...
А копировать нужно именно ячейки? Может быть, хватит и значений? Ну и Range() здесь - функция, точка не нужна... [vba]Код
With Worksheets("Пилот") Range(.Cells(ac, 22), .Cells(xa, 202)).Value = Range(.Cells(ac, 20), .Cells(xa, 200)).Value End With
[/vba]иникаких .ScreenUpdating... Да, кстати, если ac и xa - это переменные для номеров столбцов "AC" и "XA", то вот именно тогда можно использовать .Range и собрать символьное имя диапазона... AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение А копировать нужно именно ячейки? Может быть, хватит и значений? Ну и Range() здесь - функция, точка не нужна... [vba]Код
With Worksheets("Пилот") Range(.Cells(ac, 22), .Cells(xa, 202)).Value = Range(.Cells(ac, 20), .Cells(xa, 200)).Value End With
[/vba]иникаких .ScreenUpdating... Да, кстати, если ac и xa - это переменные для номеров столбцов "AC" и "XA", то вот именно тогда можно использовать .Range и собрать символьное имя диапазона... Автор - AndreTM Дата добавления - 16.09.2015 в 19:39