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

需求:编写VBA代码实现匹配B列姓名自动填充代理基础信息

实现B列输入代理姓名自动填充指定列信息的VBA代码

以下是直接可用的VBA代码,添加到你的数据工作表代码模块中即可:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim foundRow As Range
    Dim sourceCols As Variant
    Dim i As Integer
    
    ' 仅处理B列的单个单元格输入
    If Target.Column <> 2 Or Target.Cells.Count > 1 Then Exit Sub
    
    ' 定义需要复制的源列(对应C、E、G、I、J、L、M、N列的列号)
    sourceCols = Array(3, 5, 7, 9, 10, 12, 13, 14)
    
    ' 查找当前输入的代理姓名在B列的历史行(排除当前行)
    Set foundRow = Columns("B").Find(What:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
    If Not foundRow Is Nothing And foundRow.Row <> Target.Row Then
        ' 遍历指定列,复制数据到当前行
        For i = LBound(sourceCols) To UBound(sourceCols)
            Cells(Target.Row, sourceCols(i)).Value = Cells(foundRow.Row, sourceCols(i)).Value
        Next i
    End If
End Sub

代码说明

  • 触发限制:仅当B列单个单元格内容变化时执行,避免批量操作误触发
  • 列配置:sourceCols数组内的数字对应需复制的列号(C=3、E=5,以此类推),可根据实际需求调整
  • 匹配规则:精确匹配代理姓名(不区分大小写),找到首个匹配的历史行后自动复制数据
  • 防重复逻辑:排除当前行,避免刚输入的内容被当作匹配源

使用步骤

  1. 打开Excel文件,右键点击目标工作表标签,选择「查看代码」
  2. 将上述代码粘贴到弹出的VBA编辑器窗口中
  3. 返回Excel,在B列输入已存在的代理姓名,对应指定列会自动填充历史基础信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:42:04