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

如何修改Excel VBA拆分工作表宏:添加名称前缀与复制列宽

解决Excel VBA宏的两个修改需求

我帮你调整了宏代码,搞定了给新工作表加前缀和复制列宽这两个问题,下面是修改后的完整代码:

Sub Copy_Data()
    Dim r As Range, LastRow As Long, ws As Worksheet
    Dim LastRow1 As Long, MyColumn As String
    Dim src As Worksheet
    Dim Prefix As String ' 新增前缀变量
    
    MyColumn = "C"
    Prefix = "分类" ' 这里改成你想要的前缀文本
    Set src = Sheets("Sheet1")
    
    LastRow = src.Cells(src.Rows.Count, MyColumn).End(xlUp).Row
    For Each r In src.Range(MyColumn & "4:" & MyColumn & LastRow)
        On Error Resume Next
        Set ws = Sheets(Prefix & " " & CStr(r.Value)) ' 检查带前缀的工作表是否存在
        On Error GoTo 0
        
        If ws Is Nothing Then
            ' 创建带前缀的新工作表
            Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = Prefix & " " & CStr(r.Value)
            ' 复制表头
            src.Rows("1:3").Copy ActiveSheet.Range("A1")
            ' 复制原工作表的列宽到新表
            src.UsedRange.Columns.Copy
            ActiveSheet.Columns.PasteSpecial xlPasteColumnWidths
            Application.CutCopyMode = False ' 清除复制状态
            
            ' 复制当前行数据
            LastRow1 = ActiveSheet.Cells(ActiveSheet.Rows.Count, MyColumn).End(xlUp).Row
            src.Rows(r.Row).Copy ActiveSheet.Cells(LastRow1 + 1, 1)
            Set ws = Nothing
        Else
            ' 复制数据到已存在的工作表
            LastRow1 = ws.Cells(ws.Rows.Count, MyColumn).End(xlUp).Row
            src.Rows(r.Row).Copy ws.Cells(LastRow1 + 1, 1)
            Set ws = Nothing
        End If
    Next r
End Sub

关键修改说明:

  • 添加工作表名称前缀:
    新增了Prefix变量,你可以把Prefix = "分类"里的"分类"改成任何你需要的文本(比如"部门"、"项目")。创建新工作表和检查工作表是否存在时,都用Prefix & " " & CStr(r.Value)来组合名称,确保新表名称是“前缀 数值”的格式。

  • 复制列宽:
    在复制表头之后,加入了列宽复制的代码:先复制原表已使用区域的列属性,再通过PasteSpecial xlPasteColumnWidths专门粘贴列宽,最后用Application.CutCopyMode = False清除复制状态,避免后续操作受影响。这样新工作表的列宽就和原表完全一致了。

另外我还优化了一处小细节:原代码中Cells.Rows.Count没有指定工作表,可能会引发错误,修改为src.Rows.Count和ActiveSheet.Rows.Count,确保引用的是正确工作表的行数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:51:41