Мне нужно закрыть пользовательскую форму Excel с помощью VBA, когда пользователь щелкнул кнопку отправки и операции были выполнены.
Как закрыть саму форму Userform?
Я пробовал это, но возвращает ошибку 361.
Unload Me
Как указано в верхнем ответе, я использовал следующее в коде для кнопки управления.
Private Sub btnClose_Click()
Unload Me
End Sub
При этом он не будет пытаться выгрузить элемент управления, а скорее будет выгружать пользовательскую форму, в которой находится элемент управления кнопки. Ключевое слово «Me» относится к объекту пользовательской формы, даже если он вызывается из элемента управления в пользовательской форме. Если вы получаете ошибки с этой техникой, есть несколько возможных причин.
Возможно, вы вводите код не в том месте (например, в отдельном модуле)
Возможно, вы используете старую версию Office. Я использую Office 2013. Я заметил, что VBA меняется со временем.
По моему опыту, использование метода DoCmd .... более конкретно относится к функциям макросов в MS Access, но обычно не используется в Excel VBA.
При нормальных (готовых) условиях приведенный выше код должен работать просто отлично.
Unload Me работает только тогда, когда его вызывают из пользовательской формы self. Если вы хотите закрыть форму из другого кода модуля (или пользовательской формы), вам нужно использовать функцию Unload + userformcclose name.
Я надеюсь, что это помогает
Не видя вашего полного кода, на это невозможно ответить с уверенностью. Ошибка обычно возникает, когда вы пытаетесь выгрузить элемент управления, а не форму.
Убедитесь, что у вас нет «я» в скобках.
Также, если вы можете опубликовать полный код для пользовательской формы, это очень поможет.
Нужно также отметить, что, если у Вас есть кнопки, группировался на Вашей пользовательской форме, что это может связать его с другой кнопкой в группе несмотря на ту, которая Вы намеревались быть нажатыми.