Добавление списка открытых книг в комбинированный список и связанных листов в список (VBA Excel) - PullRequest
0 голосов
/ 25 ноября 2018

Я работаю над пользовательской формой, в которой выпадающий список дает пользователю имена всех рабочих книг Excel, которые уже открыты на данный момент.

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

Однако я не могу понять, как я могу получить доступ к инвентарю комбинированного списка и сделать нужные дополнения.Любая помощь / комментарий приветствуется.Спасибо.

1 Ответ

0 голосов
/ 25 ноября 2018

Вы можете использовать следующие функции

Эта функция предназначена для пользовательской формы, при инициализации она заполняет комбинированный список всеми открытыми листами

Private Sub UserForm_Initialize()

    Dim i As Long

    For i = 1 To Workbooks.Count

        ComboBox1.AddItem (Workbooks(i).Name)
    Next

End Sub

Это касается самого Combobox.всякий раз, когда вы выбираете какую-либо рабочую книгу из выпадающего списка, эта функция вызывается, и она заполняет список со списками листов этой рабочей книги.

Private Sub ComboBox1_Change()

    Dim selected_wb As Workbook

    Set selected_wb = Workbooks(ComboBox1.Text)

    ListBox1.Clear

    For Each ws In selected_wb.Worksheets

         ListBox1.AddItem ws.Name

    Next ws

End Sub

Эта функция вызывается, когда вы щелкаете имя листа из списка., он выберет лист и закроет форму пользователя

Private Sub ListBox1_Click()

    Dim selected_wb As Workbook
    Dim selected_ws As Worksheet

    Set selected_wb = Workbooks(ComboBox1.Text)
    Set selected_ws = selected_wb.Sheets(ListBox1.Text)

    selected_ws.Activate
    UserForm1.Hide


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