Excel 中给下拉框赋值

本文介绍如何使用VBA代码实现Excel中下拉框的动态内容更新。当用户从预设的下拉列表(如A、B、W)中进行选择时,会触发另一个下拉框显示与之相对应的数据集。例如,选择'A'时,第二个下拉框会显示'a1'、'a2'、'a3'等选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sheet1中,有如下内容

ABW
a1b1c1
a2b2
a3b3
b4 

分别属于三个“定义”(插入 --  名字 -- 定义)

Sheet2中,通过(数据 -- 输入规则 -- 设定 -- List)做出下拉框,内容为A,B,W

要实现,在Sheet2中,通过判断选择下拉框里的内容,来动态生成一个新下拉框,其内容为Sheet1中对应的内容。比如,选择A,那么要生成一个新的下拉框,内容为a1,a2,a3

代码如下:

 

 Private Sub Worksheet_Change(ByVal Target As Range)
    
' 假定原有下拉框在第五列
    If (Target.Column = 5Then
        
' 如果选择了B,那么将第一列到第四列变颜色
        If (Target.Text = "B"Then
            Range(Cells(Target.Row, 
1), Cells(Target.Row, 4)).Select
            
'Range(Range("J2"), Range("J2").End(xlDown)).Select
            'Range(Range("J2"), Range("J2").End(xlToRight)).Select

            
With Selection.Interior
                .ColorIndex 
= 53
                .Pattern 
= xlSolid
            
End With

        
End If
        
        
' 保存下拉框中所选择的值
        Dim test As String
        test 
= "=" & Target.Text
        
       
' 在原有下拉框的右侧单元格中生成新的下拉框
        Cells(Target.Row, 6).Select
        
With Selection.Validation
                  .Delete
                  .Add Type:
=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                  xlBetween, Formula1:
=test
                  .IgnoreBlank 
= True
                  .InCellDropdown 
= True
        
End With
        Target.Activate
    
End If
 
End Sub
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值