Нужна помощь в сохранении дополнительной рабочей книги при взаимодействии с пользовательской формой - PullRequest
0 голосов
/ 26 июня 2019

Как часть макроса, который я делаю, у меня есть код, который открывает вторичную книгу (используя гиперссылку на ту книгу, которая написана в ячейке в моей оригинальной книге).Затем открывается форма пользователя (список, заполненный значениями из строки во вторичной книге) вместе со вторичной книгой.

Проблема в том, что:
каждый раз, когда вы нажимаете на пользовательскую форму (даже просто для ее перемещения), оригинальная рабочая книга отображается поверх верхней рабочей книги, так что она больше не отображается.Для макроса мне нужно, чтобы вторичная рабочая книга и пользовательская форма оставались видимыми все время, пока не нажата кнопка внизу.

Я пробовал МНОГИЕ комбинации .Activate, .Show,.xlMinimize, .xlMaximize, .Visible, отключить обновление экрана и т. д., и ничто не приблизилось к работе.Я думаю, что проблема в том, что пользовательская форма является объектом оригинальной рабочей книги, поэтому при щелчке по ней всегда выводится оригинальная рабочая книга, но я не знаю, как это исправить.

Мой код довольно запутанно я сделаю все возможное, чтобы показать, что полезно.

Из одного модуля:

Private Sub findColumns_button_Click()  'finds selected shelf options, starts building table in data sheet
    uf_TestSelector.Hide

    Dim i As Integer, j As Integer
    Set selected_index = New Collection
    Set hyperlinks = New Collection

    For i = 0 To descriptions.count - 1
        If ts_listBox.Selected(i) = True Then
            selected_index.Add i

            Dim hyplnk As Variant
            hyplnk = ThisWorkbook.Worksheets("Test Results").Cells(i + 3, 7).Value
            hyperlinks.Add hyplnk
        End If
    Next i

    ...

    Dim k As Integer
    For k = 1 To selected_index.count   'cycles through selected options, sets 'hyperlink to be opened, shows next userform
       ...
        hyperlink_A = hyperlinks(k)
        uf_ColSelectA.Show vbModeless  'shows the userform that needs to be 'interacted with
    Next k  
...
End Sub

От uf_ColSelectA:

Private Sub UserForm_Activate()
    Dim copyBook As Workbook
    Set copyBook = Workbooks.Open(Filename:=hyperlink_A)   'copyBook = secondary workbook

    Call findListBoxValues(shelves, copyBook)
    linkA_Lbox.MultiSelect = 1
    linkA_Lbox.List = shelves()

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