Excel VBA 如何剪切活动行并粘贴到Activesheet_Archivesheet首空白行
Excel VBA 剪切活动行到归档表实现方案
剪切操作的定位逻辑和你已有的复制逻辑完全通用,只需要将原代码中的Copy方法替换为Cut即可,以下是可直接运行的完整代码:
Sub CutActiveRowToArchive() Dim srcSheet As Worksheet Dim archiveSheet As Worksheet Dim targetNextRow As Long ' 绑定源工作表、归档工作表 Set srcSheet = ActiveSheet Set archiveSheet = ThisWorkbook.Worksheets("Activesheet_Archivesheet") ' 校验是否选中整行,避免误操作 If Selection.EntireRow.Address <> Selection.Address Then MsgBox "请选中完整行后再执行操作", vbExclamation Exit Sub End If ' 定位归档表下一个空白行(按A列判断,可根据实际调整列号) targetNextRow = archiveSheet.Cells(archiveSheet.Rows.Count, "A").End(xlUp).Row + 1 ' 执行剪切粘贴 Selection.EntireRow.Cut Destination:=archiveSheet.Rows(targetNextRow) ' 可选:开启后自动删除源表剪切后留下的空行 ' Selection.EntireRow.Delete Shift:=xlUp End Sub
常见调整说明
- 如果你归档表用来判断是否为空的列不是A列,将代码中
"A"替换为对应的列号/列名即可 - 如果你习惯分开写剪切和粘贴语句,也可以用以下写法,效果完全一致:
Selection.EntireRow.Cut archiveSheet.Rows(targetNextRow).PasteSpecial Paste:=xlPasteAll Application.CutCopyMode = False ' 清除剪切板 - 剪切操作默认会带走源行的所有格式、公式、数据验证规则,和手动剪切的效果完全一致
内容的提问来源于stack exchange,提问作者stevie.tom
相关产品推荐
相关产品推荐

