在 Excel 中,如何将一个表中的一行数据发送到不同工作表上的另一个表中,然后从原始表中删除?

在 Excel 中,如何将一个表中的一行数据发送到不同工作表上的另一个表中,然后从原始表中删除?

在 Excel 中,我有一个包含范围的表A1:F12,我想有一个宏,可以将A2:F2数据中的任何行(例如)转移到同一工作簿中另一张单独工作表的另一个表中。完成后,删除从原始工作表转移的数据,使其仅存在于第二张表中。

答案1

下面的宏将从源工作表“Sheet1”的第 2 行(假设第 1 行是标题)开始复制所有数据并将其粘贴到目标工作表“Sheet2”。源工作表中的数据将始终附加到目标工作表 A 列的第一个空单元格中。粘贴内容后,它将从源工作表中删除。如果 A 列中有空单元格,则此宏将无法正常工作,因为它取决于 A 列中的单元格是否为空。根据您的需要进行调整

Sub MacroTestAtoF()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim lastRow As Long
Dim i As Long
Dim targetRow As Long

Set sourceSheet = ThisWorkbook.Sheets("Sheet1")
Set targetSheet = ThisWorkbook.Sheets("Sheet2")

lastRow = sourceSheet.Cells(sourceSheet.Rows.Count, "A").End(xlUp).Row
targetRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row + 1

For i = 2 To lastRow
    sourceSheet.Range("A" & i & ":F" & i).Copy targetSheet.Range("A" & targetRow & ":F" & targetRow)
    targetRow = targetRow + 1
Next i
sourceSheet.Range("A2:F" & lastRow).Delete Shift:=xlUp
End Sub

相关内容