移动精确数据

时间:2018-07-15 13:14:06

标签: excel vba excel-vba

早上好

我正在寻找一个宏来在2张纸之间移动数据

在第一张纸上,我有来自制造商的数据,我称该纸为“原始”纸

在第二张工作表中,我将其称为“完成”。

我想将数据从原始移动到完成

在我的原始工作表中,这些标题没有对齐,也没有与我完成的工作表中的标题相同。

在我的原始工作表中,我有一个列D,其中包含3种类型的产品“父级,产品变体和标准”,因此取决于必须将数据移动到不同单元格中的哪种产品类型。

因为匹配是标准的,所以我可能需要将原始A1移至完成的H1 但是,如果比赛是父母,我可能需要将原始A1移到C1 或者如果匹配是“产品差异”,则可能需要将A1移至I1

所以我正在尝试简化此过程

我还可能必须合并单元格,具体取决于它是“标准”,“父级”还是“产品变体”,因此我可能在A1,F1和AA 1中有数据,必须在两者之间用“,”或“ /”合并< / p>

感谢您帮助我为正确的宏指出正确的方向

Sub Kroll()

Dim i As Long

    lastrow lastrow = Sheets("Original").Range("A" & Rows.Count).End(xlUp).row
    Sheets("Standard").Range("A2:I999999").ClearContents

    For i = 2 To lastrow

        If Sheets("original").Cells(i, "D").Value = "Parent Product" Then
            Sheets("original").Cells(i, "E").EntireRow.Copy _
                        Destination:=Sheets("Standard").Range("A" & Rows.Count).End(xlUp).Offset(1)
        End If

    Next i

End Sub

1 个答案:

答案 0 :(得分:0)

我提供了一些代码,假设D列与提供的图片类似,它可以帮助您移动一些数据。对于合并问题,您必须提供一些更详细的解释和示例,以了解要合并的内容。

Picture assumed Column D

Option Explicit


Sub Moving_Exact_Data()

'''https://stackoverflow.com/questions/51348750/moving-exact-data'''
Dim originalSheet As Worksheet
Dim finishedSheet As Worksheet
Dim lastRow As Integer
Dim productRange As Range
Dim i As Integer

'Assuming original sheet is Sheet1
Set originalSheet = Sheet1

'Assuming finished sheet is Sheet2
Set finishedSheet = Sheet2

lastRow = originalSheet.Range("D" & Rows.Count).End(xlUp).Row

For i = 1 To lastRow
    With originalSheet
        If .Cells(i, 4) = "Parent" Then
            finishedSheet.Cells(i, 3) = .Cells(i, 4)
        ElseIf .Cells(i, 4) = "Product Variant" Then
            finishedSheet.Cells(i, 9) = .Cells(i, 4)
        ElseIf .Cells(i, 4) = "Standard" Then
            finishedSheet.Cells(i, 8) = .Cells(i, 4)
        Else
            MsgBox ("no match")
        End If
    End With
Next i

End Sub