Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2009, 00:22   #1
gizy@
 
Регистрация: 10.06.2009
Сообщений: 6
Вопрос Как скопировать лист?

Я уже задавал примерный вопрос, но получил не точный ответ.
Как скопировать активный лист в диапазоне A1:G60 и создать новый лист и туда вставить, теже A1:G60 и новый лист переименовать, например в "Листок". Чтоб была точная копия A1:G60 активного листа, со всеми форматированиями.

Заранее спасибо!
Ну, это нормально!)
gizy@ вне форума Ответить с цитированием
Старый 11.06.2009, 00:25   #2
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Попробуйте так:
Код:
Sub list()
    Sheets(1).Copy , Worksheets(Worksheets.Count)
    ActiveSheet.Name = "Листок"
    Sheets(1).Range("A1:G60").Copy
    Sheets("Листок").Select
    Range("A1").Select
    ActiveSheet.Paste Link:=True
    Range("A1").Select
    Sheets(1).Select
    Application.CutCopyMode = False
    Range("A1").Select
End Sub
pivas вне форума Ответить с цитированием
Старый 11.06.2009, 00:52   #3
gizy@
 
Регистрация: 10.06.2009
Сообщений: 6
По умолчанию

Видимо я что то не так объясняю. Извините за назойливость.

Вот что я хочу, чтоб макрос запускался с любого листа и копировал тот лист, на котором я сейчас работаю. Чтоб скопировал с того листа на котором я работаю на данный момент в диапазоне A1:G60, потом чтоб создал новый лист, переименовал ее в "Листок" и вставил в "Листок" то что скопировал с того листа на котором я работал(A1:G60)

Это последнее сообщение, если вы меня не поймете, то больше, наверно, не буду пробывать объяснить
Ну, это нормально!)
gizy@ вне форума Ответить с цитированием
Старый 11.06.2009, 01:07   #4
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Код:
Sub list()
    ActiveSheet.Copy , Worksheets(Worksheets.Count)
    ActiveSheet.Name = "Листок"
End Sub
данный код делает точную копию активного листа (т.е. листа на котором Вы работаете в данный момент). Код надо поместить в общий модуль, тогда он будет запускаться с любого листа.
К сожалению не совсем понятно зачем заниматься копированием дипазона A1:G60, если делается точная копия всего листа?
pivas вне форума Ответить с цитированием
Старый 11.06.2009, 01:11   #5
gizy@
 
Регистрация: 10.06.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от pivas Посмотреть сообщение
Код:
Sub list()
    ActiveSheet.Copy , Worksheets(Worksheets.Count)
    ActiveSheet.Name = "Листок"
End Sub
данный код делает точную копию активного листа (т.е. листа на котором Вы работаете в данный момент). Код надо поместить в общий модуль, тогда он будет запускаться с любого листа.
К сожалению не совсем понятно зачем заниматься копированием дипазона A1:G60, если делается точная копия всего листа?
Потому что за пределами этого диапазона делаются не нужные для отчета вычисления и все такое, а то что нужно для отчета и распечатки находится в этом диапазоне. Т.е. я на листе делаю отчет, + для себя разные вычисления для удобства, а кому я сдаю этот отчет эти сведения никак не нужны. т.е. я выполню макрос и могу сразу отправить на печать. Без всяких удалений вручную.
Ну, это нормально!)
gizy@ вне форума Ответить с цитированием
Старый 11.06.2009, 01:12   #6
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Посмотрите файл с примером, если что не так пишите
Вложения
Тип файла: rar копия_листа.rar (8.4 Кб, 46 просмотров)
pivas вне форума Ответить с цитированием
Старый 11.06.2009, 01:21   #7
gizy@
 
Регистрация: 10.06.2009
Сообщений: 6
По умолчанию

Ну вот возьмем с примера.
Например ,я работаю на 1 листе и там во всем диапазоне "1-цы", и я например, рядом написал ДЛЯ СЕБЯ всякие комментарии типа на "I14" например "фыва", на "J17" - "олдж"....
и вот, когда я нажму на эту кнопку нужно чтоб скопировалось A1:G60 без всяких "фыва" и "олдж"
Ну, это нормально!)
gizy@ вне форума Ответить с цитированием
Старый 11.06.2009, 01:25   #8
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Ясно. Тогда копируем активный лист и удаляем всё лишнее:
Код:
Sub list()
    ActiveSheet.Copy , Worksheets(Worksheets.Count)
    ActiveSheet.Name = "Листок"
    Columns("H:IV").Delete Shift:=xlToLeft
    Rows("61:65536").Delete Shift:=xlUp
    Range("A1").Select
End Sub
pivas вне форума Ответить с цитированием
Старый 11.06.2009, 01:46   #9
gizy@
 
Регистрация: 10.06.2009
Сообщений: 6
По умолчанию

Вот это уже похоже на правду
Спасибо большое!
Ну, это нормально!)
gizy@ вне форума Ответить с цитированием
Старый 31.07.2009, 08:44   #10
AlexV
Новичок
Джуниор
 
Регистрация: 30.07.2009
Сообщений: 1
По умолчанию

Интересно, а как скопировать лист из одного файла в другой? Стандартные средства Excel не предусмотрены для этого, только VBA?
AlexV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать лист Excel в Word? Диагностик Microsoft Office Excel 5 28.10.2010 23:05
Как скопировать image? blackstersl Общие вопросы Delphi 13 15.03.2009 22:51
Как скопировать программу RAVAL)) Общие вопросы Delphi 1 06.01.2009 02:57
как скопировать файл Scorpeon Общие вопросы Delphi 1 19.04.2007 13:45
как скопировать? zetrix Microsoft Office Excel 0 30.10.2006 18:52