Excel用户窗体仅在链接的工作表处于活动状态时显示

时间:2018-09-06 08:28:51

标签: vba

希望有人可以提供帮助。我是VB代码的新手。

我正在构建一组用户窗体,其中数据输入链接到各种不同的工作表。我想要的是我的“用户窗体继续”命令按钮,仅在相应的工作表处于活动状态时才进入特定的用户窗体。

例如,仅在工作簿上的工作表“建筑物”处于活动状态时,才显示“建筑物”用户窗体。 如果工作表“建筑物”未处于活动状态,则代码必须查找下一个活动工作表,然后转到链接到该工作表的用户窗体。

例如,如果工作表上的“目录”工作表处于活动状态,则代码必须显示我创建的“目录”用户表单。

我的第一个用户窗体要求用户通过单击激活工作簿中工作表的切换按钮来选择必须激活的工作表。

用户从那里单击“继续”按钮,然后我需要我的代码来查看哪些工作表处于活动状态。

到目前为止,我已经知道了,但是我知道它不正确...

Private Sub CommandButton1_Click()
Dim answer As Integer
answer = MsgBox("Have you selected all your sections?", vbYesNo + 
vbQuestion, "Selection Query")
If answer = vbYes And Sheets("Buildings") = Active Then
Me.Hide
Buildings_UF.Show
Else

Exit Sub
End If
End Sub

提前感谢 帕特里克

1 个答案:

答案 0 :(得分:0)

UserForm.Show将在用户窗体打开时停止子执行,因此以下代码就足够了(未试用的代码):

If answer = vbYes Then
    Me.Hide
    If Worksheets("Buildings").Visible then Buildings_UF.Show
    If Worksheets("OtherSheet").Visible then OtherSheet_UF.Show    
    ...
End If