完成后将行复制到新工作表中,基于Y列中的“是”…Excel 2010

问题描述 投票:-1回答:1

[有人可以编辑或给我提供代码,该代码允许根据其中具有'Yes'的Y列将整个行复制到完成的工作表中,并在移动后删除寄存器中的前一行,非常感谢]]

Sub MoveCompletedProjects()
       Const sCol$ = "Y" '<< search  in col. Y
       Const sCrit$ = "Yes" '<< criteria in col. Y
       Dim ws As Worksheet, ws1 As Worksheet
       Set ws = Sheets("Service Transition Register") '<< source sheet name
       Set ws1 = Sheets("Completed Projects") '<< target sheet name
       Dim r As Long, L As Long
       L = ws1.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
       Application.ScreenUpdating = False
       ws.AutoFilterMode = False
       r = ws.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
       If WorksheetFunction.CountIf(ws.Range(sCol & ":" & sCol), sCrit) > 0 Then '
       ws.Cells(1, sCol).Resize(r).AutoFilter Field:=1, Criteria1:=UCase(sCrit)
       ws.Rows(2 & ":" & r).SpecialCells(xlCellTypeVisible).Copy
       With ws1.Cells(L + 1, 1)
       .PasteSpecial Paste:=xlPasteFormats
       .PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        End With
        Application.CutCopyMode = False
        ws.AutoFilterMode = False
        End If
        Application.ScreenUpdating = True
        End Sub

[有人可以编辑或给我提供代码,该代码可以根据其中具有'Yes'的Y列将整个行复制到完成的工作表中,并在移动后删除寄存器中的上一行,很多...

excel vba
1个回答
0
投票

这是将同一工作簿中一个工作表的filter_copy_Paste粘贴到另一个工作表,然后从第一个工作簿中删除数据的基本代码。您将需要更改工作表,并确保工作表在具有宏的工作簿中。注释在宏中。如果您的数据超出Col "Y",则更改“ Y”。

© www.soinside.com 2019 - 2024. All rights reserved.