根据列表中的新条目将行从一个工作表复制到另一个工作表

时间:2017-08-29 13:31:04

标签: excel vba

我正在为另一个用户构建一个工作簿,并希望它尽可能自动化。在表1中,用户将复制销售数据,每个产品编号包含多行。行数每次都不同。 我想将每一行复制到Sheet 2,其中有一个Vlookup到一个Pivot。

澄清:

列A:K有产品数据。但是每种产品都有多行销售数据,交付给不同的客户。我只是想将每个产品的一行复制到另一张纸上。

我无法找到VBA"对于F列中的每个新数字:F do ..."

enter image description here

1 个答案:

答案 0 :(得分:0)

所以我没有从您的问题中获得足够的信息以便能够修改此代码,但我在大约一周前建立了一个类似问题的项目。这是我的代码:

Dim c As Integer
Dim find As Double
Dim row As Integer
Dim config As Long
Dim configA As Long
Dim cnt As Integer
Dim o As Integer
Dim LastRow As Range


find = Sheets("Packing Slip").Cells(6, "G").Value

Sheets("Shipping Detail").ListObjects("Table_Shipping_Detail_Lookup").Range.AutoFilter Field:=6, Criteria1:=find
c = 20

For o = 2 To 175


        If Sheets("Shipping Detail").Cells(o, 6) = find Then
            Sheets("Packing Slip").Cells(c, 2) = Sheets("Shipping Detail").Cells(o, 1)
            Sheets("Packing Slip").Cells(c, 3) = Sheets("Shipping Detail").Cells(o, 7)
            Sheets("Packing Slip").Cells(c, 4) = Sheets("Shipping Detail").Cells(o, 8)
            Sheets("Packing Slip").Cells(c, 5) = Sheets("Shipping Detail").Cells(o, 11)

            config = Sheets("Shipping Detail").Cells(o, 1)
            configA = Sheets("Shipping Detail").Cells(o + 1, 1)

            Do While configA - config = 0
                cnt = cnt + 1
                c = c + 1
                Sheets("Packing Slip").Cells(c, 4) = Sheets("Shipping Detail").Cells(o, 5)
                o = o + 1

                If configA - config = 1 Then
                    Exit Do
                End If
                configA = Sheets("Shipping Detail").Cells(o + 1, 1)
            Loop

            c = c + 1
            configA = configA + 1
        End If
Next o

Sheets("Shipping Detail").ListObjects("Table_Shipping_Detail_Lookup").Range.AutoFilter Field:=6
Worksheets("Packing Slip").Activate

此第一个IF语句使用与发货详细信息中的搜索匹配的数据来覆盖第一个列表。

如果装运明细中的下一行数据具有相同的订单编号,则现在装箱单中的下一行仅将装运详细信息的第5列中的项目(即产品说明)复制到装箱单中的第4栏

如果下一个现在具有相同的订单号但是另一个产品,则它会将产品标题拉到下一个,并且其详细信息将遵循

如果下一行是新订单,程序就会停止。

希望这有帮助!!