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

VBA替代Vlookup实现同名称多值拼接跨工作表取数咨询

实现方案

核心思路

  • 放弃VLookup实现,改用直接遍历查询范围的方式匹配所有符合条件的条目,将匹配结果按要求用/拼接后输出
  • 修正原代码中变量赋值顺序错误:原代码先取Ip.Cells(2, 6)的值再给Ip对象赋值,会导致取值错误,调整为先赋值Ip对象再读取BottleSKU

修改后完整代码

Sub Packaging_run_dropbox_change(ColRef As Integer)
On Error Resume Next

'Created by Marc Hipolito on 26/10/2021
'修改:支持多匹配结果拼接

'# This subroutine is a slave routine used by all
'# Packaging run dropbox routines

'# Variables
Dim BP As Worksheet         '# Bottling Programme
Dim Ip As Worksheet         '# Input worksheet
Dim Ref As Worksheet        '# Ref worksheet
Dim ptr As Integer          '# Pointer
Dim BottleSKU As String     '# Bottle SKU(建议改为String适配文本格式的SKU)
Dim BPBottleType As String  '# Comment from bottling programme
Dim i As Integer            '# pointer
Dim skuRes As String, matRes As String '# 存储拼接后的结果

'# Set worksheet objects
Set BP = Worksheets("Bottling Programme")
Set Ref = Worksheets("Ref")
Set Ip = Worksheets("DepalBottles") '调整赋值顺序,先给Ip赋值再取值

'# Use dropdown box selection number as pointer
ptr = Ref.Range("L" & ColRef + 1)

'# Find Bottle SKU according to Bottle Type
BottleSKU = Ip.Cells(2, 6)

'# 遍历匹配所有符合条件的结果
skuRes = ""
matRes = ""
For i = 2 To 20 '如果范围不固定可以改为 Ref.Cells(Ref.Rows.Count, "A").End(xlUp).Row
    If Ref.Cells(i, "A") = BottleSKU Then
        skuRes = skuRes & "/" & Ref.Cells(i, "C")
        matRes = matRes & "/" & Ref.Cells(i, "B")
    End If
Next i

'# 去掉开头多余的/分隔符后赋值
If Len(skuRes) > 0 Then
    Ip.Range("C2") = Mid(skuRes, 2)
    Ip.Range("D2") = Mid(matRes, 2)
Else
    '无匹配结果时的赋值逻辑,可按需修改
    Ip.Range("C2") = ""
    Ip.Range("D2") = ""
End If

End Sub

优化说明

如果你的Excel版本是365/2021及以上,也可以直接用工作表公式实现,不用改VBA逻辑:

  • C2单元格公式:=TEXTJOIN("/",TRUE,IF(Ref!A2:A20=F2,Ref!C2:C20,"")) 按Ctrl+Shift+Enter回车(数组公式)
  • D2单元格公式:=TEXTJOIN("/",TRUE,IF(Ref!A2:A20=F2,Ref!B2:B20,"")) 按Ctrl+Shift+Enter回车

如果查询范围经常变动,可以把代码中固定的循环上限20改为动态取值:Ref.Cells(Ref.Rows.Count, "A").End(xlUp).Row,无需手动调整范围。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:36:00