使用VBA实现VLOOKUP的查找与填充的功能

这段VBA代码用于在Excel中进行多条件和单条件查询,首先创建字典对象存储数据,然后清除目标工作表内容,接着从数据源读取信息并匹配,最后将结果更新到工作表上。主要涉及字典操作、数据清理、以及工作簿间的交互。

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

Sub 匹配系统信息()
    Dim d As Object, Arr, Brr, Crr, dl, i&, s
    Dim wb As Workbook
    Set d = CreateObject("scripting.dictionary") '字典
    Set dl = CreateObject("scripting.dictionary") '字典
    Sheet1.Activate
    [A2:B5000].ClearContents '清空
    [D2:D5000].ClearContents '清空
    Crr = Sheets("查询").[a1].CurrentRegion
    Set wb = Workbooks.Open(ThisWorkbook.Path & "\数据源.xlsx") '打开数据源
    '多条件查询
    Arr = wb.Sheets("查询NR_DU小区静态参数").[a1].CurrentRegion '打开数据源查询NR_DU小区静态参数
    For i = 2 To UBound(Arr)
        d(Arr(i, 2) & Arr(i, 6)) = Array(Arr(i, 1), Arr(i, 5))
    Next
    '单条件查询
    Brr = wb.Sheets("查询gNodeB功能").[a1].CurrentRegion
    For i = 2 To UBound(Brr)
        dl(Brr(i, 2)) = Brr(i, 5)
    Next
    '关闭数据源
    wb.Close False
    '单条件查询加取值前五位字符
    For i = 2 To UBound(Crr)
        If d.exists(Crr(i, 3) & Crr(i, 5)) Then
            s = d(Crr(i, 3) & Crr(i, 5))
            Crr(i, 1) = Left(s(0), 5)
            Crr(i, 4) = s(1)
        End If
        If dl.exists(Crr(i, 3)) Then
            Crr(i, 2) = dl(Crr(i, 3))
        End If
    Next
    [a1].CurrentRegion = Crr
    Set d = Nothing
    Set dl = Nothing
End Sub

转载
https://club.excelhome.net/thread-1658766-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值