Как программно добавлять значения в список на листе, а не в UserForms? - PullRequest
0 голосов
/ 19 июня 2020

Я хотел бы программно добавить значения в список, который я вставил в лист Excel. Я попытался найти решение в Интернете, но все, что я вижу, это решения, предназначенные для UserForms, а не для Worksheets. Я что-то упускаю?

Ответы [ 3 ]

0 голосов
/ 19 июня 2020

Попробуйте следующие коды:

Sub AddItemToListBox()
    With Sheet1.ListBox1
        .AddItem "Paris"
        .AddItem "New York"
        .AddItem "London"
    End With
End Sub

Подробнее см. В этой статье.

Ссылка на статью 1
Ссылка на статью 2

0 голосов
/ 19 июня 2020
• 1000 Я использую в своем коде не-intelli-коллекцию ListBoxes . Обратите внимание, что он занимает первое поле списка с совпадающими именами в книге.

В отдельном модуле:

Option Explicit

Sub RefreshListBox()
    Dim oListBox As ListBox
    Set oListBox = GetListBox("List Box 1")
    If Not oListBox Is Nothing Then
        With oListBox
            .RemoveAllItems ' Clears old items
            .AddItem "Item 1"
            .AddItem "Item 2"
            .AddItem "Item 3"
        End With
    End If
    Set oListBox = Nothing
End Sub

Private Function GetListBox(ListboxName As String) As ListBox
    Dim oWS As Worksheet, oLBox As ListBox
    On Error Resume Next
    For Each oWS In ThisWorkbook.Worksheets
        If oWS.ListBoxes.Count > 0 Then Set oLBox = oWS.ListBoxes(ListboxName)
        If Not oLBox Is Nothing Then Exit For
    Next
    Set GetListBox = oLBox
End Function
0 голосов
/ 19 июня 2020

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

enter image description here

При использовании Form Control содержимое содержимого устанавливается через диапазон ввода, который содержит диапазон значений на листе. Например:

enter image description here

Если список является элементом управления ActiveX , вы можете ссылаться на него в коде через рабочий лист, который он размещается, например:

Public Sub UpdateListBox()
   With Sheet1.ListBox1
        .AddItem "A1"
        .AddItem "B2"
        .AddItem "C3"
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...