Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Очистка формы от удаленных controls - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очистка формы от удаленных controls (Макросы/Sub)
Очистка формы от удаленных controls
Vesrand Дата: Вторник, 01.03.2016, 09:58 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте.
Я создал форму и добавил в нее кучу всяких controls (commandbutton, combobox, textbox и т.д.). Ну вот возьмем для примера кнопки commandbutton. После этого часть удалил, но их имена остались занятыми. Мне для удобства обращения к этим элементам в макросах, да и просто для порядка, требуется переименовать оставшиеся кнопки, но мне excel не позволяет это сделать, так как имена заняты. Да и вообще чтоб не мешались в списке объектов и зря память не занимали их желательно удалить.
Я пробовал
[vba]
Код
UserForm2.Controls.Remove ("CommandButton21")
UserForm2.CommandButton21.name = CommandButton29
UserForm2.CommandButton21.name = "CommandButton29"
[/vba]
Все это не помогло. Помогите мне пожалуйста избавиться от ненужных элементов управления формы. Или хотя бы переименовать их, чтоб освободить имена.
 
Ответить
СообщениеЗдравствуйте.
Я создал форму и добавил в нее кучу всяких controls (commandbutton, combobox, textbox и т.д.). Ну вот возьмем для примера кнопки commandbutton. После этого часть удалил, но их имена остались занятыми. Мне для удобства обращения к этим элементам в макросах, да и просто для порядка, требуется переименовать оставшиеся кнопки, но мне excel не позволяет это сделать, так как имена заняты. Да и вообще чтоб не мешались в списке объектов и зря память не занимали их желательно удалить.
Я пробовал
[vba]
Код
UserForm2.Controls.Remove ("CommandButton21")
UserForm2.CommandButton21.name = CommandButton29
UserForm2.CommandButton21.name = "CommandButton29"
[/vba]
Все это не помогло. Помогите мне пожалуйста избавиться от ненужных элементов управления формы. Или хотя бы переименовать их, чтоб освободить имена.

Автор - Vesrand
Дата добавления - 01.03.2016 в 09:58
_Boroda_ Дата: Вторник, 01.03.2016, 10:09 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9380
Репутация: 3951 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
часть удалил, но их имена остались занятыми

Значит, не удалил.
Нужно смотреть в Вашем файле. Я у себя сделал также, как Вы описали - все нормально, никакие имена не резервируются. Вернее, новая кнопка создается с именем CommandButton4 (например), но с помощью окошка Пропертиез я могу спокойно переименовать ее в имя только что убитой кнопки CommandButton1
Кстати, если так хочется, почему бы не переименовать не в CommandButton29, а в CB26 или ComBut29?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
часть удалил, но их имена остались занятыми

Значит, не удалил.
Нужно смотреть в Вашем файле. Я у себя сделал также, как Вы описали - все нормально, никакие имена не резервируются. Вернее, новая кнопка создается с именем CommandButton4 (например), но с помощью окошка Пропертиез я могу спокойно переименовать ее в имя только что убитой кнопки CommandButton1
Кстати, если так хочется, почему бы не переименовать не в CommandButton29, а в CB26 или ComBut29?

Автор - _Boroda_
Дата добавления - 01.03.2016 в 10:09
Vesrand Дата: Вторник, 01.03.2016, 11:07 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Хмм да действительно, я их не совсем удалил. Я просто однажды сделал одно неловкое движение и они исчезли, и теперь скрыто присутствуют в форме. Выставлены как видимые, координаты не выходят за пределы формы, но их не видно. Исчезли вместе с фреймами, в которых они были расположены. Возможно проще было бы заново создать форму, но я столько времени потратил на красивую расстановку всех этих кнопочек.
 
Ответить
СообщениеХмм да действительно, я их не совсем удалил. Я просто однажды сделал одно неловкое движение и они исчезли, и теперь скрыто присутствуют в форме. Выставлены как видимые, координаты не выходят за пределы формы, но их не видно. Исчезли вместе с фреймами, в которых они были расположены. Возможно проще было бы заново создать форму, но я столько времени потратил на красивую расстановку всех этих кнопочек.

Автор - Vesrand
Дата добавления - 01.03.2016 в 11:07
al-Ex Дата: Вторник, 01.03.2016, 17:26 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 55 ±
Замечаний: 0% ±

Excel 2010
Исчезли вместе с фреймами, в которых они были расположены.

Если "Фрейм.Visible =false" то соответственно вы ничего не увидите.
Так-же смотрите в настройках свойств контролов есть установка приоритета видимости, "На переднем плане"/ на заднем плане"


Сообщение отредактировал al-Ex - Вторник, 01.03.2016, 17:29
 
Ответить
Сообщение
Исчезли вместе с фреймами, в которых они были расположены.

Если "Фрейм.Visible =false" то соответственно вы ничего не увидите.
Так-же смотрите в настройках свойств контролов есть установка приоритета видимости, "На переднем плане"/ на заднем плане"

Автор - al-Ex
Дата добавления - 01.03.2016 в 17:26
Vesrand Дата: Вторник, 01.03.2016, 20:45 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Решение найдено. Вот один в один моя проблема, оставлю линк, если кто еще столкнется с этим: http://www.mrexcel.com/forum....rm.html
Похоже это такой баг случается, когда есть несколько фреймов на форме, при их перетаскивании или изменении размеров один фрейм может "спрятаться" в другом, при этом не удаляется, не переименовывается и не показывается при изменении таких свойств, как Top или Left.
Кто не знает английский, решение такое: сначала используя окно свойств установить внутри какого фрейма появился другой (при выделении фрейма в редакторе в окне свойств фрейма в списке будут все объекты, которые находятся внутри), затем установить в тех же свойствах вертикальный скролл бар для этого фрейма и его размер побольше, и наконец проскроллить до появления спрятавшегося фрейма и спокойно удалить его или перетащить в нужное место.


Сообщение отредактировал Vesrand - Вторник, 01.03.2016, 20:48
 
Ответить
СообщениеРешение найдено. Вот один в один моя проблема, оставлю линк, если кто еще столкнется с этим: http://www.mrexcel.com/forum....rm.html
Похоже это такой баг случается, когда есть несколько фреймов на форме, при их перетаскивании или изменении размеров один фрейм может "спрятаться" в другом, при этом не удаляется, не переименовывается и не показывается при изменении таких свойств, как Top или Left.
Кто не знает английский, решение такое: сначала используя окно свойств установить внутри какого фрейма появился другой (при выделении фрейма в редакторе в окне свойств фрейма в списке будут все объекты, которые находятся внутри), затем установить в тех же свойствах вертикальный скролл бар для этого фрейма и его размер побольше, и наконец проскроллить до появления спрятавшегося фрейма и спокойно удалить его или перетащить в нужное место.

Автор - Vesrand
Дата добавления - 01.03.2016 в 20:45
RAN Дата: Вторник, 01.03.2016, 21:05 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
Такой баг случается, если не аккуратно щелкнуть по любому контролу.
Глядь, а поверх TextBox1 лежит TextBox10.
Гляжу в книгу, вижу фигу. :D
Лечить просто - считаем текстбоксы, у которого номер больше их количества - явно лишний.
Если переименовывали - у кого имя "TextBox*"
Для всех других контролов - аналогично.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Вторник, 01.03.2016, 21:12
 
Ответить
СообщениеТакой баг случается, если не аккуратно щелкнуть по любому контролу.
Глядь, а поверх TextBox1 лежит TextBox10.
Гляжу в книгу, вижу фигу. :D
Лечить просто - считаем текстбоксы, у которого номер больше их количества - явно лишний.
Если переименовывали - у кого имя "TextBox*"
Для всех других контролов - аналогично.

Автор - RAN
Дата добавления - 01.03.2016 в 21:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очистка формы от удаленных controls (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!