根据不同的列将行从一个工作表复制到另一个工作表

我有一个主表(“Perk”),并希望将A列中的“y”全部复制到“Registration”表格中,并将B列中的“y”全部复制到“Housing”表格中。 使用当前的代码,正确的信息被复制到registry中。 住房单只是在拉第一个logging。

Sub extractdata() Dim x As Long, lastrow lastrow = Sheets("Perk").Range("A" & Rows.Count).End(xlUp).Row Sheets("Housing").Range("A2:AW500").ClearContents Sheets("Registration").Range("A2:AW500").ClearContents For x = 2 To lastrow If Worksheets("Perk").Cells(x, 1) Like "y*" Or Worksheets("Perk").Cells(x, 1) Like "Y*" Then Worksheets("Perk").Cells(x, "A").EntireRow.Copy Destination:=Sheets("Registration").Range("A" & Rows.Count).End(xlUp).Offset(1) End If If Worksheets("Perk").Cells(x, 2) Like "y*" Or Worksheets("Perk").Cells(x, 2) Like "Y*" Then Worksheets("Perk").Cells(x, "B").EntireRow.Copy Destination:=Sheets("Housing").Range("B" & Rows.Count).End(xlUp).Offset(1, -1) End If Next x End Sub 

考虑这是你的perk表,

在这里输入图像说明

这作为登记表的输出

在这里输入图像说明

这是作为住房表的输出

在这里输入图像说明 这里发生的是声明的结果

 Worksheets("Perk").Cells(x, "A").EntireRow.Copy Destination:=Sheets("Housing").Range("A" & Rows.Count).End(xlUp).Offset(1) 

您正在尝试通过检查A列中的空单元格来查找错误的空白行。

还没有尝试,但如果你改变这一行,它应该工作

  Worksheets("Perk").Cells(x, "A").EntireRow.Copy Destination:=Sheets("Housing").Range("B" & Rows.Count).End(xlUp).Offset(1, -1)