Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Загрузить форму через объектную переменную / 8 сообщений из 8, страница 1 из 1
16.03.2009, 19:50:19
    #35872572
grey_rat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Загрузить форму через объектную переменную
Load <имя формы> - это ясно.
А если <имя формы> заранее неизвестно?

Можно добыть форму как объект

Set f = ActiveWorkbook.VBProject.VBComponents(<имя формы>)

и таким образом с ней работать. Но

Load f

откликается визгом "can't load this object"

Есть ли способы обхода?
...
Рейтинг: 0 / 0
17.03.2009, 00:25:40
    #35872875
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Загрузить форму через объектную переменную
А если так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub NameOfUserForms()
Dim iCount As Long

    With ThisWorkbook.VBProject.VBComponents
        For iCount = .Count To  1  Step - 1 
            If .Item(iCount).Type =  3  Then
                MsgBox "Имя пользовательской формы: " & .Item(iCount).Name, , ""
            End If
        Next
    End With
End Sub

______________________________________________________________
Разрабатываю макросы под заказ.
Email: MacrosForYou собака yandex точка ru
...
Рейтинг: 0 / 0
17.03.2009, 09:16:43
    #35873100
grey_rat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Загрузить форму через объектную переменную
Pavel55А если так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub NameOfUserForms()
Dim iCount As Long

    With ThisWorkbook.VBProject.VBComponents
        For iCount = .Count To  1  Step - 1 
            If .Item(iCount).Type =  3  Then
                MsgBox "Имя пользовательской формы: " & .Item(iCount).Name, , ""
            End If
        Next
    End With
End Sub

Речь немного о другом.
Имена форм вылавливаются без труда, это верно.
Но как загрузить одну из них?
Load воспринимает только явное указание имени. На объектную переменную - лается. В этом и проблема.
...
Рейтинг: 0 / 0
17.03.2009, 11:19:26
    #35873418
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Загрузить форму через объектную переменную
Код: plaintext
1.
2.
3.
Dim f As Object
Set f = UserForm1
Load f
...
Рейтинг: 0 / 0
17.03.2009, 12:39:41
    #35873735
grey_rat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Загрузить форму через объектную переменную
[quot big-duke]
Код: plaintext
1.
2.
3.
Dim f As Object
Set f = UserForm1
Load f
Ну и откуда возьмется значение у UserForm1?
...
Рейтинг: 0 / 0
17.03.2009, 13:11:22
    #35873857
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Загрузить форму через объектную переменную
grey_rat а Вы смотрели тип объекта f после
Код: plaintext
Set f = ActiveWorkbook.VBProject.VBComponents(<имя формы>)

вероятно надо делать так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Sub test()
    Dim f As Object
    
    Set f = UserForms.Add("UserForm1")
    
    f.Show
    
End Sub
I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
17.03.2009, 13:13:21
    #35873861
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Загрузить форму через объектную переменную
Код: plaintext
1.
2.
Dim FormName As String
FormName = "UserForm1"
VBA.UserForms.Add(FormName).Show
...
Рейтинг: 0 / 0
17.03.2009, 14:25:03
    #35874131
grey_rat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Загрузить форму через объектную переменную
HandKot
вероятно надо делать так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Sub test()
    Dim f As Object
    
    Set f = UserForms.Add("UserForm1")
    
    f.Show
    
End Sub


Да. Причем форма должна быть описана именно как объект.
Спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Загрузить форму через объектную переменную / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]