粘贴

时间:2017-07-25 20:29:41

标签: excel vba duplicates copy pasting

我有一个vba代码,应该复制一张名为" Projects Overview"用"完成 - 设计"在" N"列并将其粘贴到另一个工作表。这工作正常了一段时间,但现在它不止一次地粘贴了这行。我发现粘贴的重复数量与"项目概述"中使用的行数相匹配。片。我认为代码只是循环并遍历每一行。

这是我到目前为止所做的:

Sub CompleteJob()

'Looks through the status column (N) of the Projects Overview table and moves them to Completed table, then deletes row from projects list
Dim Firstrow As Long
Dim lastRow As Long
Dim LrowProjectsOverview As Long

With Sheets("Projects Overview")
    .Select

    Firstrow = .UsedRange.Cells(1).Row
    lastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
    For LrowProjectsOverview = lastRow To Firstrow Step -1
        With .Cells(LrowProjectsOverview, "N")
            If Not IsError(.Value) Then
                If ((.Value = "Complete - Design") Or (.Value = "P4P") Or (.Value = "Ready for Setup")) Then .EntireRow.Copy Sheet3.Range("A200")

                    If Sheet9.Range("B2").Value = "" Then
                        Sheet9.Range("A2:Q2").Value = Sheet3.Range("A200:Q200").Value
                        Sheet3.Range("A200:Q200").ClearContents

                        Else

                        Sheet9.Range("B2").EntireRow.Insert
                        Sheet9.Range("A2:Q2").Value = Sheet3.Range("A200:Q200").Value
                        Sheet3.Range("A16:Q16").ClearContents
                        Sheet9.Range("B2:Q2").Interior.Color = xlNone
                        Sheet9.Range("B2:Q2").Font.Bold = False
                        Sheet9.Range("B2:Q2").Font.Color = vbBlack
                        Sheet9.Range("B2:Q2").RowHeight = 14.25

                    End If

                    If Sheet9.Range("B2").Value = "" Then
                       Sheet9.Range("B2").EntireRow.Delete

                    End If

                If ((.Value = "Complete - Design") Or (.Value = "P4P") Or (.Value = "Ready for Setup")) Then .EntireRow.Delete

            End If
        End With
    Next LrowProjectsOverview
End With

End Sub

0 个答案:

没有答案