![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 31.10.2013
Сообщений: 11
|
![]()
Вам спасибо!
Столкнулся еще с некоторой проблемой. Есть макрос, который из перечня файлов Excel копирует все первые листы книг в активную (сам макрос ниже). Можно его немного поправить так, чтобы он копируемые листы переименовывал на заданные имена или просто присваивал им порядковые (например, 1,2,3,4,5,6 и т.д). Файлов (книг), из которых копируются листы, может быть более 60. Например, макрос открывает книгу, первый лист имеет название "Таблица", он вставляет его в активную и потом переименовывает его на "1" и и т.д. Заранее благодарю. Макрос: Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "Отменено пользователем!" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWork book.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub |
![]() |
![]() |
![]() |
#12 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]() Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 31.10.2013
Сообщений: 11
|
![]()
Попробовал применить ваш макрос. К сожалению, он не переименовывает скопированные листы из других книг, вставляет их с исходным названием.
![]() ![]() |
![]() |
![]() |
![]() |
#14 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
или удалите все листы с названиями 01, 02, 03... из исходной книги, или последним листом в книге должен быть лист с максимальным номером, новый скопированный получит след. порядковый номер.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 31.10.2013
Сообщений: 11
|
![]()
К сожалению, долгое время не мог ответить.
![]() Вы меня не совсем поняли. Чтобы было проще я подготовил пример того, что я имею в рабочем процессе (см. вложение). Заранее благодарю. |
![]() |
![]() |
![]() |
#16 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
см.вложение.
макрос из исходных книг будет пытаться скопировать лист "Классификатор", если такого нет, то просто первый лист из книги.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 31.10.2013
Сообщений: 11
|
![]()
IgorGO, огромное спасибо Вам и этому форуму!!
Все работает точно так, как требовалось! ![]() ![]() ![]() Если возникнут сложности буду обращаться именно к вам. Ожидайте еще одну благодарность на - 41001804815208. Прошу сообщить, когда придет перевод. ![]() |
![]() |
![]() |
![]() |
#18 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
и Вам спасибо!
перевод получен.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 31.10.2013
Сообщений: 11
|
![]()
Хорошо.
К сожалению, снова столкнулся с некоторыми проблемами. Макрос делает лишние действия: 1) Очищает все ячейки на листе "Реестр" (на листе Реестр имеется определенная форма, куда должна быть вставлена информация. Его не нужно очищать, только копировать столбцы с листов); 2) Макросы все же необходимо использовать отдельно, они не должны быть взаимосвязаны (разделить на две кнопки). Еще в рабочем файле макрос снова начал копировать листы с исходным названием (не переименовывал). Что может вызвать ошибку макроса при переименовывании листа? Пытался сам что-то поправить, но сразу столкнулся с множеством ошибок ![]() Надеюсь на вашу помощь. Заранее спасибо. |
![]() |
![]() |
![]() |
#20 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
см. вложение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите доделать | innaa639 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 21.05.2009 09:52 |
Помогите доделать | Bay | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 05.01.2009 15:01 |
Помогите доделать | Povar | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 16.05.2008 14:43 |