![]() |
Модераторы: mihanik |
![]() ![]() ![]() |
|
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
Добрый день.
Программа работает с рядом рабочих листов в книге. Их количество определяется потребностью пользователя и от сеанса к сеансу различно. Листы наделены программной реакцией на действия пользователя. В данный момент в книге предопределенное кол-во скрытых листов и вручную внесенны обработчики на каждый из них, подобно приведенному: Private Sub Worksheet_Change(ByVal target As Range) Call hi(target) End Sub Листы скрыты. При потребности в очередном по очереди раскрываются автоматически. Вариант исчерпал себя. Ограничивает возможности программы. Решено динамически создавать новые листы вместо того, чтобы держать их в книге в виде скрытых заготовок. В каждый новый программно созданный лист нужно закладывать один и тот же код, наподобие приведенного выше. Но как это делать программно??? Это сообщение отредактировал(а) НеуФазендник - 11.2.2012, 15:18 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Самое простое - делать копию скрытого листа-шаблона, без данных, но с кодом. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
||||
|
||||
LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
Нет не единственно возможный.. Есть вариант с программым добавлением кода. Честно говоря сам никогда не тестил. В вашем случае, как я понял, лучше всего обрабатывать событие создания нового листа.
Зараннее извиняюсь за возможные синтаксические ошибки, офиса под рукой нет, но идею постарался донести |
|||
|
||||
Дмит |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 21.4.2006 Где: г.Волгоград Репутация: 8 Всего: 9 |
Если использовать
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) в модуле книги, то событие Change можно отследить на всех листах, включая будущие. |
|||
|
||||
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
LOPUH,
Дмит, Оба предложеные варианта подойдут и интересны. Не знал о них. Возьму на вооружение. Спасибо. Все же уже пошел первым путем, предложеным Akina. Работает. Переделывать пока нет смысла. Так что успехом в применении новых знаний поделюсь быть может в другой раз ![]() Еще раз спасибо!!! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование, связанное с MS Office" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |