发布日期:2024-09-08 16:58 点击次数:145
图片反差 裸反差 裸
如上图所示,兴致有趣一列不错选拔多个选项,况兼选拔后自动填入单位格,每个选项之间用分号自动分隔,选拔单位格时右侧自动掸出下拉菜单。要终了这个效力,当然不是简便的Excel界面操作就能完成的,需要使用到控件和VBA代码。不外别挂牵,代码准备好了,只须人人按照门径操作,准保不错终了。一、插入列表框选拔【开发器具】选项卡,点击【插入】,选拔列表框,具体操作参见动图演示:图片
二、复制粘贴代码使命表标签右击鼠标,选拔稽查代码,粘贴底下的代码。具体操作参见动图演示:图片
代码如下:Private Sub ListBox1_Change()
If Reload Then Exit Sub
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then t = t & ";" & Trim(ListBox1.List(i))
Next
ActiveCell = Mid(t, 2)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ListBox1
If ActiveCell.EntireRow.Range("a1") <> "" And ActiveCell.Column = 5 And ActiveCell.Row > 1 Then
t = ActiveCell.Value
Reload = True
For i = 0 To .ListCount - 1
If InStr(t, .List(i)) Then
.Selected(i) = True
Else
.Selected(i) = False
End If
Next
Reload = False
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
.ListFillRange = "sheet2!a2:a" & Sheet2.Cells(1, 1).End(xlDown).Row
.Top = ActiveCell.Offset(0, 1).Top
大胆人体艺术.Left = ActiveCell.Offset(0, 1).Left
.Width = ActiveCell.Width
.Height = ActiveCell.Height * 6
.Visible = True
Else
.Visible = False
End If
End With
End Sub
三、测试出手点击【开发器具】选项卡,取消缱绻阵势,尝试一下菜单是否不错平日败露。图片
四、代码探讨这里的菜单期骗在Sheet1使命表中的E列,其它列点击鼠标是莫得这个效力的。况兼菜单列表摒弃在另外一个使命表Sheet2的A列。图片
淌若人人的使命表称呼和诸位置与案例不一致,就需要对代码作念微调,探讨步调如下:图片
① IF 语句需要得志三个条目。第一个是动作单位格场合行的第一个单位格不为空,第二个是动作单位格场合列为第五列,第三个条目是动作单位格场合的行大于1,只好这三个条目同期得志智力期骗下拉菜单。淌若人人下拉菜单期骗的位置和案例不同,需要进行相应的探讨。② 这里用来开导下拉菜单的数据源。使命表2的a2单位格到终末一个非空单位格,淌若你的使命表不是sheet2,数据源的鸿沟也不同,亦然要作念相应探讨的。 本站仅提供存储工作,所有本体均由用户发布,如发现存害或侵权本体,请点击举报。