早上好
我正在寻找一个宏来在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
答案 0 :(得分:0)
我提供了一些代码,假设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