Индекс конкретной загруженной пользовательской формы - PullRequest
0 голосов
/ 14 января 2019

У меня одновременно загружено много экземпляров одной и той же пользовательской формы.

У каждого из них есть кнопка.

Что мне нужно сделать, это получить индекс пользовательской формы, которую я нажал на ее кнопку.

Это мой подход, но я получаю сообщение об ошибке, ссылаясь на строку №. 6

Public Function UserFormInstance(ByVal objTargetUserForm As Object) As Long
    Dim strUserFormName As String

    For Each objUserForm In VBA.UserForms
        strUserFormName = objTargetUserForm.Name

        If objUserForm.Name = strUserFormName Then
            UserFormInstance = UserFormInstance + 1

            If objUserForm = objTargetUserForm Then '==> Here is the problem
                Exit For
            End If
        End If
    Next objUserForm

    Set objUserForm = Nothing
End Function

Private Sub CommandButton1_Click()
    Dim xxx As Long
    xxx = UserFormInstance Me
    MsgBox xxx
End Sub

Мне нужна ваша помощь, пожалуйста. Спасибо.

1 Ответ

0 голосов
/ 14 января 2019

Для сравнения объектов необходимо использовать Is вместо =:

If objUserForm Is objTargetUserForm Then
    Exit For
End If

(Вы, вероятно, уже привыкли делать это со специальным объектом Nothing, например, If objUserForm Is Nothing Then и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...