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

Excel VBA如何根据用户输入ID从其他工作表复制匹配行到目标表

适配ID匹配逻辑的VBA代码

Sub test()
    
Dim targetId As Variant, insertRow As Variant
Dim pastews As Worksheet, copyws As Worksheet
Dim matchRng As Range

Set copyws = Sheets("Previous")
Set pastews = Sheets("Today")
    
' 输入待复制的ID,支持数字、文本格式ID
targetId = Application.InputBox("输入需要复制的ID", Type:=2)
If TypeName(targetId) = "Boolean" Then Exit Sub
' 输入目标表插入位置行号
insertRow = Application.InputBox("输入要插入到目标工作表的行号", Type:=1)
If TypeName(insertRow) = "Boolean" Then Exit Sub

' 在源表A列精准匹配ID
Set matchRng = copyws.Range("A:A").Find(What:=targetId, LookIn:=xlValues, LookAt:=xlWhole)
' 未匹配到ID的提示逻辑
If matchRng Is Nothing Then
    MsgBox "未查询到对应ID,请检查输入内容", vbExclamation
    Exit Sub
End If

' 执行复制插入操作
copyws.Rows(matchRng.Row).Copy
pastews.Rows(Val(insertRow)).Insert
Application.CutCopyMode = False

End Sub

调整说明

  • 第一个输入框的输入类型从仅支持数字的Type:=1改为支持文本、数字的Type:=2,适配不同格式的ID规则
  • 新增A列全匹配查找逻辑,LookAt:=xlWhole保证只有完全一致的ID才会被匹配,避免模糊匹配误选其他行
  • 新增ID不存在的异常提示,防止无匹配结果时程序运行报错
  • 如果你需要支持ID模糊匹配,把LookAt:=xlWhole改为LookAt:=xlPart即可

示例源表参考:
示例源表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:00:05