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

我为我们的项目提供了一个Excel工作簿,该工作簿包含一张包含该工作所有门/产品的主表。 在BF栏中包含产品所在阶段交货的编号。 我已经得到了正确的工作(见下文)复制包含产品的每一行到该阶段的工作表。 这些都是这样命名的:“第一阶段表”,“第二阶段表”。 如果只有两个阶段的交付,我有这个工作。 我想要它达到大约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个阶段/交付表:

图片

我还有更多我想添加到这个代码。

你有没有尝试在循环中引入第二个FOR循环:

 Dim LR As Long, i As Long, x As Long LR = Sheets("Master Sheet").Range("A" & Rows.Count).End(xlUp).Row Application.ScreenUpdating = False For i = 10 To LR For x = 1 To 24 If Sheets("Master Sheet").Range("BF" & i).Value = x Then Sheets("Master Sheet").Range("A" & i).EntireRow.Copy Sheets("Stage " & x & " Sheet").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial (xlPasteValues) End If Next x Next i Application.CutCopyMode = False End Sub