如何修改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
相关产品推荐
相关产品推荐

