Я уже давно борюсь с этим вопросом.
У меня есть пользовательская форма, которая вызывается из созданной мной надстройки Excel, которая затем проверяет, содержит ли текущая активная книга определенную структуру. Если нет, то создается новая рабочая книга с такой точной структурой. Я установил эту книгу, а также другую книгу, которую я открыл как wb1 и wb2.
Проблема заключается в том, что пользовательская форма изначально вызывается из активной рабочей книги (может быть любой рабочей книгой) во время нажатия кнопки ленты ив основном привязывается только к ЭТОЙ книге.
Можно ли каким-либо образом отсоединить пользовательскую форму от этой книги и изменить ее, чтобы показывать мой wb2 на фоне моей пользовательской формы?
Я пробовал следующий код, но он просто закрывает моюпользовательская форма и не работает.
Option Explicit
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal clsName As String, ByVal wndName As String) As Long
Private Declare PtrSafe Function SetParent Lib "user32" (ByVal hChild As Long, ByVal hParent As Long) As Long
Private Sub CommandButton1_Click()
Static h As Long
If h <= 0 Then h = FindWindow("ThunderDFrame", Me.Caption)
If h <= 0 Then Exit Sub
Dim wb As Workbook: Set wb = Workbooks.Add
SetParent h, Application.Windows(wb.Name).Hwnd
wb.Activate
End Sub
Есть идеи?