Excel宏修改需求:按间隔复制行后需正向排列而非反向
解决Excel宏按间隔复制后反向横向排列的问题
你当前的宏代码会将每段96行数据插入到Sheet3的最左侧,导致最早的B1:B96最终被挤到最右侧,呈现反向排列。要实现从B1到B2784的正向横向排列,只需调整粘贴位置的逻辑,按顺序将每段数据粘贴到对应的列即可:
Sub Daily_Separation() Dim colNum As Integer Application.ScreenUpdating = False colNum = 1 ' 起始粘贴列 For x = 1 To 2784 Step 96 ' 复制Separation表中从第x行开始的96行B列数据 ThisWorkbook.Sheets("Separation").Cells(x, 2).Resize(96, 1).Copy ' 粘贴到Sheet3的第colNum列,逐列向右排列 ThisWorkbook.Sheets("Sheet3").Cells(1, colNum).PasteSpecial Paste:=xlPasteAll colNum = colNum + 1 ' 列数自增,准备下一段粘贴 Next x Application.ScreenUpdating = True Application.CutCopyMode = False End Sub
修改说明
- 新增
colNum变量记录当前粘贴的列位置,初始为1(即A列) - 每次循环后列数自增,确保下一段数据粘贴到右侧相邻列
- 替换原有的
Insert Shift:=xlToRight为直接粘贴到指定列,避免插入操作导致的顺序反转
内容的提问来源于stack exchange,提问作者Harati
相关产品推荐
相关产品推荐

