我在 Excel 中有一个表格,我可以在一个单元格中的下拉列表中选择多个项目。
现在,我必须使用宏分别选择所有选项,然后将它们逐个添加到单元格中。
是否可以编写将复选框添加到下拉列表中的宏,这样我就可以检查要添加的项目,并且它们将同时添加?
答案1
是的,您可以添加表单列表框并允许多项选择。点击此处获得 MS 支持。
VBA-检查这个 stackoverflow 帖子
答案2
好的,我将这个代码用于列表框:
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
它运行得很好,但我想改变一件事。
目前,列表框在双击单元格后显示,是否可以将其改为只需单击一次?也可以将其更改为列表框始终显示在选定单元格下方吗?