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

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

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

3 ответа3

0

Хорошо, я использовал этот код для списка:

Dim lngItem As Long
Const strSep = ", " 'delimiter

Private Sub UserForm_Initialize()
With ListBox1
    .RowSource = "=Sheet1!A2:A12"
    For lngItem = 0 To ListBox1.ListCount - 1
        .Selected(lngItem) = InStr(1, strSep & ActiveCell.Value & strSep, strSep & .List(lngItem, 0) & strSep)
    Next lngItem
End With
End Sub

Private Sub CommandButton1_Click()
Dim strItems As String
With ListBox1
    For lngItem = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(lngItem) Then
            strItems = strItems & strSep & ListBox1.List(lngItem, 0)
        End If
    Next lngItem
End With
With ActiveCell
    .NumberFormat = "@"
    .Value = Replace(strItems, strSep, "", 1, 1)
End With
Unload Me
End Sub

и этот для выбора столбцов:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 3 Or Target.Row = 1 Then Exit Sub
UserForm1.Show
Cancel = True
End Sub

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

В данный момент список появляется после двойного щелчка по ячейке, есть ли возможность сделать его одним щелчком мыши? Также его можно изменить, чтобы список всегда отображался под выбранной ячейкой?

0

Да, вы можете добавить форму списка и разрешить множественный выбор. Проверьте здесь для поддержки MS.

VBA - проверить этот поток

-1

Если вы посмотрите на приложенное изображение, то узнаете, что именно так выглядит решение префекта. Использование чекбоксов внутри списков.

Загрузите код:http://www.vlsiip.com/exceltips.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .