Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.03.2012
Сообщений: 29

Скопировать листы книги, начиная с третьего

18.05.2013, 04:00. Показов 2072. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Подскажите, пожалуйста, как скопировать все листы Книги, начиная с 3его листа (1ый и 2ой лист копировать не надо), если заранее неизвестно, сколько в книге листов. Скопированные листы вывести в отдельную книгу.

Были мысли сделать так:
Visual Basic
1
2
3
4
5
6
If ActiveWorkbook.Sheets.Count > 2 then  ( проверка на наличие как минимум 3ех листов)
 
Application.ScreenUpdating = False
ThisWorkbook.Sheets(Array("List1", "List2", "List3",....)).Copy  (пробовал массив листов скопировать)
Application.Dialogs(xlDialogSaveAs).Show
End If
Беда в том, что заранее неизвестно, сколько в книге листов, поэтому копированием массива поименно перечисленных листов этот вопрос решить не получается.

Подскажите, пожалуйста, как быть. Возможно, у вас есть другие идеи для решения?

Спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2013, 04:00
Ответы с готовыми решениями:

Макрос. Скопировать листы с закрытой книги
Преприятие использует программу САП САП выгружает документы в папку FromSap с именем :" Инвентаризация...

Скопировать данные из sheet1 на другие листы этой же книги
Как макросам можно скопировать все данные из sheet1 в остальные скажем 5 sheet'ов

По содержимому столбца создать листы и в эти листы скопировать соответствующие строки
Здравствуйте, уважаемые Форумчане!!! Есть задачка: В прикреплённом файле есть табличка. Надо по содержимому колонки, например отдел,...

5
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
18.05.2013, 09:26
Код
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Procedure_1()
 
    Dim i As Long
    
    For i = 3 To Worksheets.Count Step 1
        'Делаете действие с нужным листом.
            'Я просто для примера привёл команду "Activate".
            'В большинстве случаев не нужно активировать лист, чтобы
            'что-то с ним сделать.
        Worksheets(i).Activate
    Next i
 
End Sub
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
18.05.2013, 09:26
Сформируйте массив из номеров листов:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Dim i&
If ActiveWorkbook.Sheets.Count > 2 Then '( проверка на наличие как минимум 3ех листов)
    ReDim arr(3 To ActiveWorkbook.Sheets.Count)
    For i = 3 To UBound(arr)
        arr(i) = i
    Next
    Application.ScreenUpdating = False
    ActiveWorkbook.Sheets(arr).Copy
    Application.Dialogs(xlDialogSaveAs).Show
End If
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
18.05.2013, 09:37
Лучший ответ Сообщение было отмечено как решение

Решение

Можно без цикла
Visual Basic
1
2
3
4
5
If ActiveWorkbook.Sheets.Count > 2 Then '( проверка на наличие как минимум 3ех листов)
    Application.ScreenUpdating = False
    ActiveWorkbook.Sheets(Evaluate("TRANSPOSE(ROW(3:" & ActiveWorkbook.Sheets.Count & "))")).Copy
    Application.Dialogs(xlDialogSaveAs).Show
End If
3
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
18.05.2013, 19:51
на всякий случай - на всех копируемых листах все ячейки со строками длиннее 255 символов обрежутся.
по крайней мере - в версиях Excel до 2003 включительно.
как в более свежих - не знаю.
2
0 / 0 / 0
Регистрация: 03.03.2012
Сообщений: 29
19.05.2013, 17:49  [ТС]
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.05.2013, 17:49
Помогаю со студенческими работами здесь

сбой в Excel 2007 при попытке скопировать листы из одной книги в другую
Доброго всем времени суток. Вопрос в следующем: почему может не работать стандартная функция копирования листов из одной книги в другую в...

Скопировать, перенести и объединить листы
доброго времени суток подскажите пожалуйста как перенести и объединить листы? Лист1 Лист2 Лист3 нужно объединить на...

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

Скопировать заданный диапазон на указанные листы
Всем доброго времени суток. Что-то никак не могу сообразить как сделать макрос чтобы заранее известный диапазон значений был скопирован...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru