Excel VBA宏修改:复制区域转置粘贴到A27起首个空白行
代码修改方案
直接使用如下修改后的脚本即可实现需求:
Sub Macro1() Dim targetRow As Long ' 定位A列27行及以下的首个空白行 targetRow = Cells(Rows.Count, "A").End(xlUp).Row + 1 If targetRow < 27 Then targetRow = 27 ' 复制B2到B22的数据,转置粘贴到目标行的A列位置 Range("B2:B22").Copy Cells(targetRow, "A").PasteSpecial Paste:=xlPasteAll, Transpose:=True ' 清除剪贴板,取消选中状态 Application.CutCopyMode = False End Sub
核心修改说明
- 修正了原脚本的复制范围,将原
B1:B22调整为你要求的B2:B22 - 新增空白行定位逻辑:从A列底部向上查找最后一个有数据的行,自动计算下一个空白行,同时判断如果空白行小于27则默认使用27行,确保数据不会粘贴到27行以上的区域
- 移除了原脚本中冗余的选中、窗口滚动操作,直接操作单元格对象,运行效率更高且不会触发界面跳动
内容的提问来源于stack exchange,提问作者rnmuk
相关产品推荐
相关产品推荐

