EXCEL2013利用VBA代码按条件引用下拉菜单
例如我Sheet1表中有个表是这样的:班级人员1班张三1班李四1班王五2班陈陈2班丹丹2班小小2班点点3班赵大3班钱钱3班猪猪3班笨笨那么我在Sheet2表中做个表有班级...
例如我Sheet1表中有个表是这样的:
班级 人员
1班 张三
1班 李四
1班 王五
2班 陈陈
2班 丹丹
2班 小小
2班 点点
3班 赵大
3班 钱钱
3班 猪猪
3班 笨笨
那么我在Sheet2表中做个表有班级和人员列用到Sheet1表的序列时,假设在A2单元格选1班的时候,B2单元格只能选1班对应的人员,选2班的时候,B2单元格只能选2班对应的人员,如何用VBA代码实现?
在Sheet2都要用下拉菜单实现。 展开
班级 人员
1班 张三
1班 李四
1班 王五
2班 陈陈
2班 丹丹
2班 小小
2班 点点
3班 赵大
3班 钱钱
3班 猪猪
3班 笨笨
那么我在Sheet2表中做个表有班级和人员列用到Sheet1表的序列时,假设在A2单元格选1班的时候,B2单元格只能选1班对应的人员,选2班的时候,B2单元格只能选2班对应的人员,如何用VBA代码实现?
在Sheet2都要用下拉菜单实现。 展开
1个回答
展开全部
sheet2中加入以下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Cells(Target.Row, 1) <> "" Then
Sheet1.Range("C:C").Delete
j = 1
For i = 1 To Sheet1.UsedRange.Rows.Count
If Sheet1.Cells(i, 1) = Cells(Target.Row, 1) Then
Sheet1.Cells(j, 3) = Sheet1.Cells(i, 2)
j = j + 1
End If
Next i
Dim cnum
cnum = Application.WorksheetFunction.CountA(Sheet1.Range("c:c"))
If cnum >= 1 Then
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Sheet1!C1:C" & Application.WorksheetFunction.CountA(Sheet1.Range("c:c"))
End With
End If
End If
End Sub
追问
能不能帮做个样表出来?
追答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询