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