Excel 基于多列中的重复值复制行
我有下表,如果订单ID和合同相同,我想复制行 我想让宏执行以下操作:Excel 基于多列中的重复值复制行,excel,vba,Excel,Vba,我有下表,如果订单ID和合同相同,我想复制行 我想让宏执行以下操作: 你们能给我一个正确的方向来完成这件事吗?提前感谢您可以使此代码更加有效,但这是“朝着正确的方向推进以完成此任务”: Sub myMacro() ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' “去宽容 将行数据调整为整数,将行新建为整数 rowData=1 rowNew=1 '''''''''''''''''''''''''''''''
你们能给我一个正确的方向来完成这件事吗?提前感谢您可以使此代码更加有效,但这是“朝着正确的方向推进以完成此任务”:
Sub myMacro()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
“去宽容
将行数据调整为整数,将行新建为整数
rowData=1
rowNew=1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
"前两项,
范围(“H”和rowNew,“J”和rowNew)。值=范围(“A”和rowData,“C”和rowData)。值
rowNew=rowNew+1
rowData=rowData+1
范围(“H”和rowNew,“J”和rowNew)。值=范围(“A”和rowData,“C”和rowData)。值
rowNew=rowNew+1
rowData=rowData+1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'循环遍历所有A列条目
Do While范围(“A”&rowData)。值“”
发现类似条目
如果范围(“A”&rowData).Value=Range(“A”&rowData-1).Value则
范围(“H”和rowNew,“J”和rowNew)。值=范围(“A”和rowData,“C”和rowData)。值
rowNew=rowNew+1
rowData=rowData+1
“未找到类似条目
其他的
rowNew=rowNew+1
范围(“H”和rowNew,“J”和rowNew)。值=范围(“A1:C1”)。值
rowNew=rowNew+1
范围(“H”和rowNew,“J”和rowNew)。值=范围(“A”和rowData,“C”和rowData)。值
rowNew=rowNew+1
rowData=rowData+1
如果结束
环
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
端接头
我在这里没有看到任何实例。您是说124
中24
的最后两位数字与6CV4 P0924
中24
的最后两位数字匹配吗?对不起,我的意思是说如果有类似的订单ID和类似的合同,请复制行。因此,在上面的示例中,我们有5行,其中订单ID=111,合同=6CU4 P0920。可能存在订单Id相同但合同不同的情况(例如,在上面的示例中,创建了订单Id=111、合同=6CU4 P1922的新行)。在这种情况下,这一新行将与其他5行分开,这5行构成类似的内容?你试过什么了吗?有任何代码启动吗?如果它们按ID
排序,然后按Contract
排序,则可以循环遍历数据,并用类似If cells(i,1)cells(i+1,1)和cells(i,3)cells(i+1,3)的内容标记范围的结束代码>则行i
将是一系列“类似”项目中的最后一行。
Sub myMacro()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' decleration
Dim rowData As Integer, rowNew As Integer
rowData = 1
rowNew = 1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' put first two entries
Range("H" & rowNew, "J" & rowNew).Value = Range("A" & rowData, "C" & rowData).Value
rowNew = rowNew + 1
rowData = rowData + 1
Range("H" & rowNew, "J" & rowNew).Value = Range("A" & rowData, "C" & rowData).Value
rowNew = rowNew + 1
rowData = rowData + 1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' loop through all of column A entries
Do While Range("A" & rowData).Value <> ""
' similar entry found
If Range("A" & rowData).Value = Range("A" & rowData - 1).Value Then
Range("H" & rowNew, "J" & rowNew).Value = Range("A" & rowData, "C" & rowData).Value
rowNew = rowNew + 1
rowData = rowData + 1
' similar entry Not found
Else
rowNew = rowNew + 1
Range("H" & rowNew, "J" & rowNew).Value = Range("A1:C1").Value
rowNew = rowNew + 1
Range("H" & rowNew, "J" & rowNew).Value = Range("A" & rowData, "C" & rowData).Value
rowNew = rowNew + 1
rowData = rowData + 1
End If
Loop
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub