|
(VBA) Обращение к элементу активной формы из стандартного модуля(не из модуля самой формы)
|
|||
---|---|---|---|
#18+
Уважаемые друзья доброго дня. Посодействуйте советом. Пытаюсь сделать контекстное меню к ListBox (называется - LBNameOfObjects2) на форме в EXCEL. Всё идёт хорошо в аккурат до момента когда необходимо после произведенных манипуляций обновить ListBox, ни какие известные мне манипуляции не помогают... Существует ли в принципе такая возможность? Немного конкретики: Это в модуле формы Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Это в обычном модуле Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
Собственно проблема в последних 2-х строчках: Код: vbnet 1. 2.
Программа честно выполняет всё что до этого и более того не бьёт ошибок и на этих строках, но и не обновляет форму. При этом в функцию "LBNameOfObjects2_Zapolnenie" должен передаваться аргумент получаемый из заполненного поля формы, однако вместо этого уходит значение - "". Важно отметить, что эти же две строчки помещённые на обработку события нажатия кнопки в модуле самой формы - прекрасно себя чувствуют и работают как положено. Что и где я делаю не так? Заранее благодарен за Вашу помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2018, 11:59 |
|
(VBA) Обращение к элементу активной формы из стандартного модуля(не из модуля самой формы)
|
|||
---|---|---|---|
#18+
Виноват, немного опечатался, вторая строка изложена в следующей редакции Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2018, 12:11 |
|
(VBA) Обращение к элементу активной формы из стандартного модуля(не из модуля самой формы)
|
|||
---|---|---|---|
#18+
AndreyRZD, а нет возможности объявить Public переменную для формы? При инициализации назначаете ей значение формы: Код: vbnet 1.
а далее просто обращаетесь именно к ней(если она запущена, конечно): Код: vbnet 1. 2. 3. 4.
Должно сработать ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2018, 12:14 |
|
(VBA) Обращение к элементу активной формы из стандартного модуля(не из модуля самой формы)
|
|||
---|---|---|---|
#18+
The_Prist, Благодарю Вас! Действительно работает. Подскажите, а возможно как-то обыграть эту ситуацию если открыто несколько экземпляров одной формы? Одной глобальной переменной я так понимаю тут уже не отделаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2018, 12:23 |
|
(VBA) Обращение к элементу активной формы из стандартного модуля(не из модуля самой формы)
|
|||
---|---|---|---|
#18+
ChangeDogFRM - это, как я понимаю, имя класса формы? ну так с чего бы коду работать - Вы шлёте команды этой самой абстрактной форме, сиречь классу, в то время как надо работать с конкретным экземпляром. Так что надо объявить (видимо, глобально) переменную класса формы, типа Код: vbnet 1.
открывать её соответствующим присвоением конкретного экземпляра Код: vbnet 1. 2.
и в коде адресоваться именно к этому конкретному экземпляру Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2018, 12:33 |
|
(VBA) Обращение к элементу активной формы из стандартного модуля(не из модуля самой формы)
|
|||
---|---|---|---|
#18+
Если надо несколько форм - объявите несколько переменных (а то и массив...). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2018, 12:35 |
|
|
start [/forum/topic.php?fid=61&fpage=19&tid=2172430]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 277ms |
total: | 398ms |
0 / 0 |