| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA, После закрытия userform кнопка запуска макроса(зеленый треугольник) не активен

VBA, После закрытия userform кнопка запуска макроса(зеленый треугольник) не активен

Ответ
Поиск в этой теме
Непрочитано 17.03.2018, 12:30
VBA, После закрытия userform кнопка запуска макроса(зеленый треугольник) не активен
Simson
 
Регистрация: 08.03.2018
Сообщений: 45

создал пустую форму без кнопок кода и тд... написал макрос запуска этой формы и последующей выгрузки( ну или без нее)
Код:
[Выделить все]
Sub test()

    UserForm1.show
    Unload UserForm1
    
End Sub
открывается форма закрываю ее на крестик. процедура заканчивается но треугольничек остается неактивным будто идут какие то процессы еще.. в чем дело? что происходит там в фоне? как это решить?

Последний раз редактировалось Simson, 17.03.2018 в 13:00.
Просмотров: 6284
 
Автор темы   Непрочитано 17.03.2018, 20:21
#21
Simson


 
Регистрация: 08.03.2018
Сообщений: 45


пробовал.. не помогает.
написал end в конце.. иначе не смог остановить эту машину
Simson вне форума  
 
Непрочитано 17.03.2018, 20:31
#22
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,007


попробуй дописать в коде формы обработчик события закрытия

Код:
[Выделить все]
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  If (CloseMode = vbFormControlMenu) Then
    Cancel = 1
    Me.Hide
  End If
End Sub
т.е. чтобы при закрытии крестом или по ALT-F4 просто скрывал форму. А потом Unload в процедуре, откуда вызывал
Сергей812 вне форума  
 
Автор темы   Непрочитано 17.03.2018, 20:39
#23
Simson


 
Регистрация: 08.03.2018
Сообщений: 45


слишком сложно. обойдусь End
Спасибо)
Simson вне форума  
 
Непрочитано 17.03.2018, 20:53
#24
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,007


в общем, потестил на виртуалке: такое впечатление, что пока окно активного документа не получит фокус ввода обратно, оно блокирует завершение процесса.
Сергей812 вне форума  
 
Непрочитано 17.03.2018, 22:53
#25
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,204


Offtop: Просто не нужно выгружать форму.
__________________
Не откладывайте на завтра! Положите на всё уже сегодня.(с)
Бахил вне форума  
 
Непрочитано 17.03.2018, 22:59
#26
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,007


Получается, что с End самый рабочий вариант) Отмена выгрузки формы не влияет на проблему.
Сергей812 вне форума  
 
Автор темы   Непрочитано 17.03.2018, 23:46
#27
Simson


 
Регистрация: 08.03.2018
Сообщений: 45


но этот выход мне до сих пор не нравится... не должно так быть.. в екселе ведь тот же самый код работает как надо
Simson вне форума  
 
Непрочитано 17.03.2018, 23:53
#28
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,007


Цитата:
Сообщение от Simson Посмотреть сообщение
но этот выход мне до сих пор не нравится... не должно так быть.. в екселе ведь тот же самый код работает как надо
Для офиса VBA родной язык изначально) Можно еще оформить это все в виде пользовательской команды акада - но не уверен, что VBA это позволит сделать.
Сергей812 вне форума  
 
Автор темы   Непрочитано 17.03.2018, 23:55
#29
Simson


 
Регистрация: 08.03.2018
Сообщений: 45


да пускай так будет раз нет более лаконичного решения чем енд
никто никогда не пользовался формами? или почему никто не сталкивался с этим? никто не пишет на вба похоже
Simson вне форума  
 
Непрочитано 18.03.2018, 00:16
#30
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,007


я тоже писал сначала несколько месяцев на VBA в акаде. И устав от рандомных глюков - ушел с него раз и навсегда, надеюсь) Но для офиса использую достаточно активно в то же время.
Сергей812 вне форума  
 
Непрочитано 18.03.2018, 00:52
#31
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Когда AutoCAD стал x64 с VBA случилась жопа, особенно с формами. Хотя в последнее время её подлечили...
trir вне форума  
 
Автор темы   Непрочитано 18.03.2018, 16:08
#32
Simson


 
Регистрация: 08.03.2018
Сообщений: 45


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
ушел с него раз и навсегда
на что перешли?

----- добавлено через ~2 мин. -----
а если допустим в офисе писать на вба а в акаде на другом языке их между собой можно связать?
Simson вне форума  
 
Непрочитано 18.03.2018, 16:18
#33
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,007


Цитата:
Сообщение от Simson Посмотреть сообщение
на что перешли?
на конечном итоге на C#.

Цитата:
Сообщение от Simson Посмотреть сообщение
а если допустим в офисе писать на вба а в акаде на другом языке их между собой можно связать?
Обрабатывайте информацию внутри акада, отчеты выводите в офис через COM-интерфейс, например. На VBA в офисе пишу вспомогательные макросы лишь для ручных рутинных операций.
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA, После закрытия userform кнопка запуска макроса(зеленый треугольник) не активен

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Пропадают картинки после закрытия программы Mariya_Space AutoCAD 13 16.06.2017 10:10
После применения offset не удаляется (не редактируется) исходный объект Nata1 AutoCAD 7 07.04.2015 09:08
Глюки после установи последнего обновления на Civil 3D 2013 black_mts Вертикальные решения на базе AutoCAD 14 22.01.2013 19:02
Невозможность изменения файла чертежа после его закрытия в Автокаде. Из-за чего!?!? Botan AutoCAD 12 12.04.2009 05:27