请求编写VBA宏:实现转置粘贴并删除已复制选中行
实现行转置粘贴并删除原选中行的VBA宏代码
以下是满足需求的VBA宏代码,可直接复制到Excel的VBA编辑器中使用:
Sub TransposeAndDeleteRows() Dim sourceRows As Range Dim pasteTarget As Range ' 校验是否选中了目标行 If TypeName(Selection) <> "Range" Then MsgBox "请先选中需要处理的行!", vbExclamation Exit Sub End If Set sourceRows = Selection.EntireRow ' 让用户指定粘贴起始单元格 On Error Resume Next Set pasteTarget = Application.InputBox("请选择粘贴目标的起始单元格:", Type:=8) On Error GoTo 0 ' 用户取消操作时退出 If pasteTarget Is Nothing Then Exit Sub ' 复制并转置粘贴 sourceRows.Copy pasteTarget.PasteSpecial Paste:=xlPasteAll, Transpose:=True ' 清空剪贴板,避免后续误操作 Application.CutCopyMode = False ' 删除源行 sourceRows.Delete End Sub
关键说明:
- 运行宏前,先选中需要处理的行(支持单行或多行选中)
- 宏会弹出输入框,让你选择转置粘贴的起始单元格
- 转置粘贴会保留原数据的格式、公式等全部内容
- 粘贴完成后自动删除最初选中的源行
使用注意事项:
- 确保粘贴目标区域有足够空间,避免覆盖已有数据
- 建议先备份数据再运行宏,防止误操作丢失数据
- 若选中行包含表头,请谨慎操作,避免误删表头
内容的提问来源于stack exchange,提问作者Ranadip Chandra
相关产品推荐
相关产品推荐

