Excel VBA将行复制到另一个包含特定列中找到的值的工作表

时间:2017-01-26 21:02:19

标签: excel vba excel-vba

我的项目有一个Excel工作簿,其中包含一个主表单,其中包含该作业的所有门/产品。在列BF中包含产品所在阶段交付的编号。我已正确使用它(见下文)将包含产品的每一行复制到该阶段的工作表中。它们的名称如下:“Stage 1 Sheet”,“Stage 2 Sheet”。如果只有两个阶段的交付,我有这个工作。我希望它可以完成大约24个阶段。

我遇到的问题是我的代码会很长。有没有办法可以将舞台列中的值与舞台工作表上的数字相匹配? 这是我的代码:

Sub LineCopy()

Dim LR As Long, i As Long
LR = Sheets("Master Sheet").Range("A" & Rows.Count).End(xlUp).Row

Application.ScreenUpdating = False

For i = 10 To LR
    If Sheets("Master Sheet").Range("BF" & i).Value = "1" Then
        Sheets("Master Sheet").Range("A" & i).EntireRow.Copy
        Sheets("Stage 1 Sheet").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial (xlPasteValues)
    ElseIf Sheets("Master Sheet").Range("BF" & i).Value = "2" Then
        Sheets("Master Sheet").Range("A" & i).EntireRow.Copy
        Sheets("Stage 2 Sheet").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial (xlPasteValues)
    End If
Next i

Application.CutCopyMode = False

End Sub

这是我的床单布局。我将为最多24个阶段/交付添加更多工作表:

Image

我还想要添加更多代码。

1 个答案:

答案 0 :(得分:2)

您是否尝试在循环中引入第二个FOR循环

FirmAnswer