|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.08.2013, 15:06 | #1 |
Пользователь
Регистрация: 29.08.2013
Сообщений: 27
|
Очистка списка имен UserForm из памяти
Всем доброго времени суток,
Помогите, пожалуйста, вот с таким вопросом: У меня есть программа которая добавляет в книгу новую форму: Private Sub CreateUserForm(zag, nam) With ThisWorkbook.VBProject.VBComponents .Add(3) .Properties(42) = 500 .Properties(43) = 400 .Properties("Caption") = zag .Name = "UF" & nam End With End Sub Затем созданная форма удаляется. Так вот получается, что создать новую форму под тем же именем, что и только что удаленная форма, уже нельзя, хотя самой формы в проекте нет. Выпадает ошибка 75 "Could not find the specified object". Но если книгу закрыть и снова открыть, то форма замечательно создается. Я так понимаю что есть где-то в памяти список имен форм, который очищается если книгу перегрузить. Подскажите пожалуйста, есть способ очистить эту память? Спасибо. |
29.08.2013, 21:53 | #2 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
А если попробовать при удалении формы написать в конце
Код:
Код:
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
29.08.2013, 23:39 | #3 | |
Пользователь
Регистрация: 29.08.2013
Сообщений: 27
|
Цитата:
затем называю через свойства UserForm1 - UserForm4 - нормально работает UserForm2 - UserForm1 - нормально работает удаляю UserForm3 пытаюсь переназвать UserForm1 - UserForm3 - выдает ошибку pass/file access error и лечится только закрытием и открытием книги. Можно эту ошибку как-то обойти? |
|
29.08.2013, 23:52 | #4 |
Пользователь
Регистрация: 29.08.2013
Сообщений: 27
|
Все получилось!!!
Правда не знаю, наверное через неправильное место. Сразу после удаления формы добавила код сохранения книги ActiveWorkbook.Save и все заработало |
30.08.2013, 00:21 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Вопрос, конечно, не в тему, но всё же:
а зачем программно создавать форму? Вот я постоянно пишу макросы, и ни разу не потребовалось так извращаться. Можно же вручную один раз создать эту форму, а потом отображать (меняя заголовок и другие параметры) Можно и несколько копий одной формы отобразить (пример), с разными заголовками: Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
очистка памяти | Kukurudza | Общие вопросы C/C++ | 1 | 30.07.2012 11:34 |
Очистка памяти в delphi 7 | Ербулат | Общие вопросы Delphi | 11 | 13.06.2012 11:22 |
Очистка памяти | _-Re@l-_ | Общие вопросы Delphi | 4 | 22.05.2010 17:08 |
Очистка памяти | Senator | Общие вопросы Delphi | 1 | 28.06.2008 19:39 |
Очистка памяти в C# | darkstarx | Общие вопросы .NET | 1 | 14.04.2008 14:48 |