Excel Userform, чтобы показать, только если связанный лист активен - PullRequest
0 голосов
/ 06 сентября 2018

надеясь, что кто-то может помочь. Я очень плохо знаком с кодом 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 голосов
/ 06 сентября 2018

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...