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

求助完善Excel VBA代码:新增工作表时复制对应行至指定位置

Excel VBA代码完善:新建工作表并复制对应行数据

原代码已实现基于「Source Data (Target 1)」工作表每行创建命名工作表的功能,仅需补充行数据复制逻辑即可满足需求。以下是完善后的完整代码:

Sub NewSheetPerName()
    Dim sourceWS As Worksheet
    Dim curWS As Worksheet
    Dim lastRow As Long
    Dim x As Long
    
    ' 绑定主数据工作表,简化后续引用
    Set sourceWS = ThisWorkbook.Sheets("Source Data (Target 1)")
    ' 获取主表最后一行行号
    lastRow = sourceWS.Cells(sourceWS.Rows.Count, 1).End(xlUp).Row
    
    For x = 7 To lastRow
        ' 在最后位置新建工作表
        Set curWS = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        ' 用主表当前行第1列的值命名新表
        curWS.Name = sourceWS.Cells(x, 1).Value
        
        ' 复制主表当前行所有数据,粘贴到新表A7位置
        ' 若需粘贴到A8,将"A7"替换为"A8"即可
        sourceWS.Rows(x).Copy Destination:=curWS.Range("A7")
    Next x
End Sub

关键修改说明:

  • 新增sourceWS变量绑定主工作表,避免循环内重复查找工作表,既提升运行效率,也降低因工作表名称拼写错误导致的问题
  • 添加核心复制粘贴语句:sourceWS.Rows(x).Copy Destination:=curWS.Range("A7"),直接复制整行数据到新表指定单元格,无需手动选择粘贴区域
  • 显式声明所有变量,符合VBA编程规范,可避免因变量名拼写错误引发的隐性bug

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:52:47