You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改VBA代码为Excel拼接生成的唯一值匹配首条对应描述

调整后可实现需求的VBA代码
Sub 拼接去重匹配首次描述()
    Dim Ary As Variant
    Dim r As Long
    Dim lastRow As Long
    Dim combineKey As String
    
    ' 可选:运行前清空C、E列旧输出数据,避免残留
    Range("C2:C" & Rows.Count).ClearContents
    Range("E2:E" & Rows.Count).ClearContents
    
    ' 获取A列最后有效行号
    lastRow = Range("A" & Rows.Count).End(xlUp).Row
    ' 读取A-C列全部有效数据,包含原C列描述
    Ary = Range("A2:C" & lastRow).Value2
    
    With CreateObject("scripting.dictionary")
        For r = 1 To UBound(Ary)
            ' 拼接A、B列作为唯一键
            combineKey = Ary(r, 1) & " " & Ary(r, 2)
            ' 仅当键首次出现时,存储对应原C列内容,重复键不覆盖
            If Not .Exists(combineKey) Then
                .Item(combineKey) = Ary(r, 3)
            End If
        Next r
        ' 输出拼接唯一值到C列
        Range("C2").Resize(.Count).Value = Application.Transpose(.Keys)
        ' 输出对应首次出现的描述到E列
        Range("E2").Resize(.Count).Value = Application.Transpose(.Items)
    End With
End Sub

核心修改点说明

  • 扩展数据读取范围:从原逻辑仅读A、B列,调整为读取A到C列,获取原C列的描述字段
  • 字典存储逻辑优化:新增键存在性判断,仅首次出现的拼接键会存入对应的原C列内容,后续重复出现的同拼接键不会覆盖已存储的值,保证取到的是首次出现的描述
  • 新增E列输出逻辑:将字典中存储的首次描述内容批量输出到E列,和C列的拼接唯一值一一对应

内容的提问来源于stack exchange,提问作者Drawleeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:27:06