如何点击单元格,弹出下拉框,选择其中之一
数据-》数据验证-》验证条件 允许:选择序列-》来源:框选excel中的内容
如何弹出一个多选框,然后多选后的内容自动放置到单元格内?
需要采用VB。保存格式必须为xlsm格式(启动宏的工作簿) 不是xls/xlsx
依次打开 开发工具-》控件-》查看代码
VB.net涉及到的:
对象(一个sheet对应一个对象)、
窗体
模块
对象:Sheet1**
Sub MultiSelectProduct()
UserForm1.Show
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '说明:监听sheet1发生的用户操作事件
If ActiveCell.Column = 6 And ActiveCell.Row > 1 Then '说明:当前激活列为J列,第二行以下
Call MultiSelectProduct '调用显示窗体宏名
End If
End Sub
窗体:UserForm1
Private Sub CommandButton1_Click()
Dim Arr(), k&, i&
ReDim Arr(1 To 1)
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
k = k + 1
ReDim Preserve Arr(1 To k)
'Arr(k) = .List(i, 1)
Arr(k) = Sheet2.Range("B" & (i + 2)).Value '获取Sheet2列表中A列i+1行的值
End If
Next i
End With
If Application.ActiveCell.Value <> "" Then
Dim iResult
iResult = MsgBox("是否替换当前项目现有登记产品?", 1)
If iResult = 1 Then
Application.ActiveCell.Value = Join(Arr, vbCrLf) '将值放入到当前单元格
Unload Me
End If
Else
Application.ActiveCell.Value = Join(Arr, vbCrLf) '将值放入到当前单元格
Unload Me
End If
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label2_Click()
End Sub
Private Sub UserForm_Initialize()
Label2.Caption = Application.ActiveCell.Value
With UserForm1.ListBox1
.RowSource = "dictionary!B2:B46" '设定源数据区域 ,下拉列表框的数据来源
.ColumnCount = 1 '设定列数
.ColumnHeads = False '设定列标题。标题为数据区域的上一行
.BoundColumn = 2
.MultiSelect = fmMultiSelectMulti '按空格键或单击鼠标以选定列表中一个条目或取消选定。
' .MultiSelect = fmMultiSelectExtended '按 Shift 并单击鼠标,或按 Shift 的同时按一个方向键,将所选条目由前一项扩展到当前项。按 Ctrl 的同时单击鼠标可选定或取消选定。
' .MultiSelect = fmMultiSelectSingle '只可选择一个条目(默认)。
End With
End Sub