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

如何基于另一列唯一值复制数据范围并粘贴到Excel其他工作表

你原有代码已经完成了序列号提取和去重的前置步骤,补充遍历、筛选、导出逻辑即可实现拆分需求,完整可运行代码如下:

Sub SplitDataByReceiptNumber()
    Dim wsSource As Worksheet
    Dim wsTemp As Worksheet
    Dim lastRowA As Long, lastRowAA As Long
    Dim i As Long
    Dim receiptNum As String
    Dim savePath As String
    
    ' 绑定数据所在工作表
    Set wsSource = ActiveSheet
    ' 自定义拆分后csv的保存路径,默认和当前Excel文件同目录
    savePath = ThisWorkbook.Path & "\"
    
    ' 保留你原有排序、提取序列号的逻辑
    wsSource.Range("A:A").Sort Key1:=wsSource.Range("A:A"), Order1:=xlDescending, Header:=xlYes
    wsSource.Range("W1").Value = "Receipt Number"
    lastRowA = wsSource.Cells(Rows.Count, 1).End(xlUp).Row
    
    With wsSource.Range("W2:W" & lastRowA)
        .Formula = "=Left(A2, 4)"
        .Calculate
        .Value = .Value
    End With
    
    ' 提取不重复的序列号到AA列
    wsSource.Range("W1:W" & lastRowA).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=wsSource.Range("AA1"), Unique:=True
    lastRowAA = wsSource.Cells(Rows.Count, "AA").End(xlUp).Row
    
    ' 逐个处理每个唯一序列号
    For i = 2 To lastRowAA
        receiptNum = wsSource.Cells(i, "AA").Value
        ' 新建临时工作表存储对应序列号的数据
        Set wsTemp = Workbooks.Add(xlWBATWorksheet).Sheets(1)
        
        ' 筛选当前序列号对应的所有行
        wsSource.Range("A1:W" & lastRowA).AutoFilter Field:=23, Criteria1:=receiptNum
        ' 复制表头+筛选后的可见内容到临时表
        wsSource.Range("A1:W" & lastRowA).SpecialCells(xlCellTypeVisible).Copy Destination:=wsTemp.Range("A1")
        
        ' 临时表另存为csv,文件名为对应序列号
        wsTemp.SaveAs Filename:=savePath & receiptNum & ".csv", FileFormat:=xlCSVUTF8
        wsTemp.Parent.Close SaveChanges:=False
        
        ' 清除筛选,处理下一个序列号
        wsSource.AutoFilterMode = False
    Next i
    
    ' 可选:删除生成的W、AA辅助列
    wsSource.Range("W:W").Delete
    wsSource.Range("AA:AA").Delete
    
    MsgBox "所有文件拆分完成,保存路径:" & savePath, vbInformation
End Sub

使用注意:

  • 运行前请确保当前活动工作表是你导入了combined.csv数据的页面
  • 如果你的数据列数超过W列,把代码中所有Range("A1:W" & lastRowA)里的W修改为你实际数据的最后一列列标即可
  • 代码默认导出UTF-8编码的csv避免乱码,如有特殊编码需求可以自行修改FileFormat参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:45:03