根据单元格值将行从两个或多个Excel工作表复制到另一个

时间:2019-01-10 12:05:20

标签: excel vba

enter image description here我认为无论如何都不能与地雷相提并论,

区别是根据单元格值从一个以上的页面复制到另一个页面,而不是使用宏VBA而是使用

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range).

事实上,我尝试过此方法,但效果不佳:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    For Each Sh In ThisWorkbook.Sheets
        If Not Sh.Name = "Archive" Then
            If Cells(Target.Row, 3) = "delivered" Then Cells(Target.Row, 3).EntireRow.Copy Sheets("Archive").Range("A" & Rows.Count) _
              .End(xlUp).Offset(1, 0)
        End If 
    Next Sh
End Sub

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我在此发布问题的解决方案,谢谢PEH,也感谢论坛成员。

Private Sub Workbook_SheetChange(ByVal Sh作为对象,ByVal目标作为范围) 如果不是Sh.Name =“ Archive”,则 lastcolumn =单元格(1,Columns.Count).End(xlToLeft).Column 如果Sh.Cells(Target.Row,3)=“已交付”并且Sh.Cells(Target.Row,lastcolumn)<>“”然后 范围(Cells(Target.Row,1),Cells(Target.Row,lastcolumn))。 Sheets(“ Archive”)。Range(“ A”&Rows.Count).End(xlUp).Offset(1) 万一 万一 结束