作为我正在制作的宏的一部分,我有打开辅助工作簿的代码(使用指向该工作簿的超链接,该超链接写在我的原始工作簿的单元格中)。然后,将打开一个用户窗体(一个列表框,其中填充了辅助工作簿中一行的值)。
问题是:
每次单击用户窗体(甚至只是移动它),原始工作簿都会显示在辅助工作簿的顶部,因此不再可见。出于宏的目的,我需要辅助工作簿和用户窗体始终保持可见,直到单击底部的按钮为止。
我尝试了.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