我正在尝试根据匹配将单元格数据从一张纸复制到另一张纸。
我有一本3页的工作簿。“地点”,“可乐”和“ HMS”。
在活动工作表“位置”上,如果列C14中有单词“可乐”-我希望将D14-H14复制到工作表“可乐”中。
同样,如果C15包含“ HMS”-我只希望将“ D15-H15”复制到工作表“ HMS”
我有一个宏可以复制整行,而我要复制特定的单元格-这是从特定的C:H复制的。
Sub As_Of_Analysis_Sorting()
Dim lr As Long, lr2 As Long, r As Long
lr = Sheets("Place").Cells(Rows.Count, "A").End(xlUp).Row
lr2 = Sheets("Coke").Cells(Rows.Count, "A").End(xlUp).Row
lr3 = Sheets("HMS").Cells(Rows.Count, "A").End(xlUp).Row
For r = lr To 2 Step -1
If Range("C" & r).Value = "Coke" Then
Rows(r).Copy Destination:=Sheets("Coke").Range("A" & lr2 + 1)
lr2 = Sheets("Coke").Cells(Rows.Count, "A").End(xlUp).Row
End If
If Range("C" & r).Value = "HMS" Then
Rows(r).Copy Destination:=Sheets("HMS").Range("A" & lr3 + 1)
lr3 = Sheets("HMS").Cells(Rows.Count, "A").End(xlUp).Row
End If
Range("A140").Select
Next r
End Sub
我该如何实现?
首先是“好的做法”建议:始终告诉范围在哪个工作表中:
Range("C" & r).Value
'becomes
Range("Place!C" & r).Value
'or
sheets("Place").Range("C" & r).Value
现在的答案是:该代码正是按照您的指示执行的:
Rows(r).Copy Destination:=Sheets("Coke").Range("A" & lr2 + 1)
==>复制整个行并将其放在A中。这将替换整个行。如果不需要格式,则应使用此格式:
range("Coke!A" & lr2 +1 & ":F" & lr2 +1 ) = range("Place!C" & r & ":H" & r).value2
如果您需要格式(慢速代码):
range("Place!C" & r & ":H" & r).copy Destination:=Sheets("Coke").Range("A" & lr2 + 1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句