VBA 数据验证序列 动态更新

本文描述了如何通过VBA脚本在Excel中,基于银行流水表中的单位名称,查找对应的合同编号,并将其作为下拉列表供用户选择,以便实现表1与表2的数据关联,进行进一步的数据分析。

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

聪明又机灵的同事给我出了个题目,如下

表1为银行流水,有三个字段:日期,单位名称,金额

表2为合同目录,有四个字段:合同编号,合同名称,单位名称,合同额;其中一个单位可以签订多份合同,

现在需要在表1中根据单位名称,找到有几份合同,然后以下拉菜单的形式选择出相应的合同编号。最终实现通过合同编号将表1和表2连起来,做进一步的数据分析。

通过摸索,VBA可实现了上述功能。

要点:

1、确定目标单位(所在行的第二列)

2、根据目标单位在sheet2中找出所有的合同编号,并存在数组中

3、将数组赋值到下拉列表中

4、完成。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim aa As String
Dim bb As Integer ' 合同目录最大行数
Dim cc As String  ' 所选行的单位名称
Dim i As Integer
bb = Sheets(2).Range("A1").End(xlDown).Row
cc = Cells(Target.Row, 3)


If Target.Column = 7 Then

    For i = 1 To bb
        If Sheets(2).Cells(i, 3) = cc Then
            aa = aa & Sheets(2).Cells(i, 1) & Sheets(2).Cells(i, 2) & ","<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值