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都要用下拉菜单实现。
展开
 我来答
百度网友2264614
2017-02-06 · TA获得超过196个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:196万
展开全部

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
追问
能不能帮做个样表出来?
追答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式