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

如何修改VBA代码实现多行前5单元格转置至指定现有工作表

修改VBA代码实现每行前5单元格转置并输出到Sheet1

修改后的完整代码

Option Explicit

Sub Transpose_List()
    Dim WS As Worksheet
    Dim WSA As Worksheet
    Dim NextRow As Long
    Dim LastRow As Long
    Dim i As Long

    Set WSA = ActiveSheet
    ' 指定输出到现有工作表Sheet1,而非新建表
    Set WS = ThisWorkbook.Worksheets("Sheet1")

    LastRow = WSA.Cells(Rows.Count, 1).End(xlUp).Row

    Application.ScreenUpdating = False

    ' 从第5行开始,每6行作为一组处理
    For i = 5 To LastRow Step 6
        NextRow = WS.Cells(Rows.Count, 1).End(xlUp).Row + 1
        ' 调整选区为当前起始行i开始的6行、5列(A-E列)
        WSA.Cells(i, 1).Resize(6, 5).Copy
        ' 转置粘贴到Sheet1的目标行
        WS.Cells(NextRow, 1).PasteSpecial Transpose:=True
    Next i

    WS.Columns.AutoFit

    Application.ScreenUpdating = True
End Sub

关键改动说明

  • 输出目标调整:删除新建工作表的代码,直接将WS指向现有Sheet1,避免生成新表。
  • 转置范围扩展:将原代码中仅选取A列1列的Resize(6, 1)修改为选取A-E列5列的Resize(6, 5),实现每行前5个单元格的转置。
  • 列自适应优化:将原代码指定的A:F列自适应改为Columns.AutoFit,适配转置后的实际列数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:52:45