Перейти к основному содержанию

Как заполнить ComboBox пользовательской формы всеми именами листов в Excel?

В этой статье говорится о заполнении всех имен листов текущей книги в поле со списком пользовательской формы в Excel.

Заполните Userform ComboBox всеми именами листов с кодом VBA


Заполните Userform ComboBox всеми именами листов с кодом VBA

Следующий код VBA может помочь вам вставить все имена листов текущей книги в поле со списком пользовательской формы. Пожалуйста, сделайте следующее.

1. нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, вставьте пользовательскую форму, нажав Вставить > Пользовательская форма как показано ниже.

3. Затем нарисуйте и вставьте поле со списком в пользовательскую форму. Смотрите скриншот:

4. Щелкните вставленное поле со списком правой кнопкой мыши и выберите Просмотреть код из контекстного меню. Смотрите скриншот:

5. В дебюте Microsoft Visual Basic для приложений окна, скопируйте и вставьте ниже код VBA, чтобы заменить исходный код в окне кода.

Код VBA: заполнение поля со списком пользовательской формы всеми именами листов текущей книги

Private Sub UserForm_Initialize()
    Dim I As Long
    Me.ComboBox1.Clear
    For I = 1 To Sheets.Count
        Me.ComboBox1.AddItem Sheets(I).Name
    Next
    Me.ComboBox1.Value = ActiveSheet.Name
End Sub

Внимание: В коде ComboBox1 - это имя вставленного поля со списком. Пожалуйста, измените его на свой собственный.

6. нажмите F5 ключ для запуска кода. В открывшейся пользовательской форме вы можете увидеть, что все имена листов текущей книги отображаются в поле со списком, как показано на скриншоте ниже:


Легко перечислить все имена листов в Excel

Ассоциация Создать список имен листов полезности Kutools for Excel может помочь легко перечислить все имена рабочих листов активной книги на новом листе в Excel. И вы можете перейти к соответствующему листу напрямую, щелкнув имя листа, как показано на скриншоте ниже.
Скачайте и попробуйте прямо сейчас! (30-дневный бесплатный пробный период)


Статьи по теме:

Лучшие инструменты для офисной работы

🤖 Kutools AI Помощник: Революционный анализ данных на основе: Интеллектуальное исполнение   |  Генерировать код  |  Создание пользовательских формул  |  Анализ данных и создание диаграмм  |  Вызов функций Kutools...
Популярные опции: Найдите, выделите или определите дубликаты   |  Удалить пустые строки   |  Объедините столбцы или ячейки без потери данных   |   Раунд без формулы ...
Супер поиск: Множественный критерий VLookup    VLookup с несколькими значениями  |   VLookup по нескольким листам   |   Нечеткий поиск ....
Расширенный раскрывающийся список: Быстрое создание раскрывающегося списка   |  Зависимый раскрывающийся список   |  Выпадающий список с множественным выбором ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка Фокус   |  Просмотр дизайна   |   Большой Формулный Бар    Менеджер книг и листов   |  Библиотека ресурсов (Авто текст)   |  Выбор даты   |  Комбинировать листы   |  Шифровать/дешифровать ячейки    Отправлять электронные письма по списку   |  Суперфильтр   |   Специальный фильтр (фильтровать жирным шрифтом/курсивом/зачеркиванием...) ...
15 лучших наборов инструментов12 Текст Инструменты (Добавить текст, Удалить символы, ...)   |   50+ График Тип (Диаграмма Ганта, ...)   |   40+ Практических Формулы (Рассчитать возраст по дню рождения, ...)   |   19 Вносимые Инструменты (Вставить QR-код, Вставить изображение из пути, ...)   |   12 Конверсия Инструменты (Числа в слова, Конверсия валюты, ...)   |   7 Слияние и разделение Инструменты (Расширенные ряды комбинирования, Разделить клетки, ...)   |   ... и более

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

Описание


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Dear Sir/Madam,
Thanks for you kind help. I'm a new Lerner of VBA and these article helps me a lot. I have used this code to show all worksheets in a userform combobox. It is perfect. I have a doubt. Can I show those sheet name alphabetically on Userform_Initialize? Though my worksheets are not arranged alphabetically.
Please guide me how to proceed further with my requirement.
Thanks,
R.P
This comment was minimized by the moderator on the site
Good Day,
Sorry for replying so late. The following VBA code can help you solve the problem.

Private Sub UserForm_Initialize()
Dim xWSs As Worksheets
Dim xWS As Worksheet
Dim xName As String
Dim xI As Integer
Dim xRg As Range
On Error Resume Next

xName = "StoreWorkSheetsName"

Application.DisplayAlerts = False

If Not Evaluate("=ISREF('" & xName & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.count)).Name = xName & ""
Else
Sheets(xName & "").Move after:=Worksheets(Worksheets.count)
End If
Set xWS = Sheets(xName & "")

For xI = 1 To Sheets.count - 1
xWS.Range("A" & xI).Value2 = Sheets(xI).Name
Next xI
xI = xI - 1
Set xRg = xWS.Range("A1:A" & xI)
ActiveWorkbook.Worksheets(xName).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(xName).Sort.SortFields.Add Key:= _
Range("A1:A" & xI), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets(xName).Sort
.SetRange Range("A1:A" & xI)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Me.ComboBox1.Clear
For i = 1 To xRg.count
Me.ComboBox1.AddItem xRg.Item(i).Value

Next
Me.ComboBox1.Value = ActiveSheet.Name

xWS.Delete
Application.DisplayAlerts = True
End Sub
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations