我正在尝试根据匹配将单元数据从一张纸复制到另一张。
我有一张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
Hos我能做到吗?
答案 0 :(得分:0)
首先是一个“良好做法”建议:始终告诉范围在哪张表中:
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)