Могу ли я обойтись без commandbutton1 в моей пользовательской форме? - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть код VBA для пользовательской формы в Excel. Эта пользовательская форма позволяет мне отображать список, в котором отображаются все доступные рабочие листы ... Затем, после выбора нужного рабочего листа в моем списке и нажав на моей пользовательской форме одну кнопку с именем «CommandButton1», он выбирает мне нужный рабочий лист ... Однако я Я бы хотел, просто выбрав и щелкнув по моему желаемому листу в моем списке, он выберет мне нужный лист (Таким образом, мне больше не нужно будет нажимать на мою кнопку «CommandButton1» в моей пользовательской форме, чтобы выбрать нужный лист). ... Если бы кто-то мог помочь мне с этим, это было бы действительно замечательно .. Большое спасибо заранее. Хави, пожалуйста, найдите мой код ниже:

Sub CommandButton1_Click()

    Worksheets(ListBox1.Value).Select
End Sub

Sub UserForm_Initialize()
    Dim n As Integer
    Dim msg As String

    On Error GoTo Exit
    Do
        n = n + 1
        ListBox1.AddItem Sheets(n).Name
    Loop Until n = Worksheets.Count

    If ListBox1.Value.Selected Then
        CommandButton1_Click = True
    Else
        CommandButton1_Click = False
    End If
    Exit:

End Sub

1 Ответ

0 голосов
/ 11 сентября 2018

все, что вам нужно, это ListBox Click обработчик событий:

Option Explicit

Private Sub ListBox1_Click()
    With Me.ListBox1
        If .ListIndex <> -1 Then Worksheets(.Value).Select
    End With
End Sub



Sub UserForm_Initialize()
    Dim n As Integer

    Do
        n = n + 1
        ListBox1.AddItem Sheets(n).Name
    Loop Until n = Worksheets.Count

End Sub

Кстати, вы UserForm_Initialize() можно немного упростить следующим образом

Sub UserForm_Initialize()
    Dim sht As Worksheet

    For Each sht In Worksheets
        ListBox1.AddItem sht.Name
    Next
End Sub
...