我要做的是将E17:BK17中的值复制到最后一行。现在,我拥有它所有的副本是E17的值到最后一行,但不是剩下的列数据到最后一行。任何帮助都会受到赞赏,因为我不知道自己在做什么。
Sub Mercy_CopyPaste_Row()
'
' CopyPaste Macro
'
'
Dim targetRng As Excel.Range
Dim destRng As Excel.Range
Set targetRng = Range("$E$17:$BK$17")
Set destRng = Excel.Range("E" & Rows.Count).End(xlUp).Offset(1, 0)
destRng.Value = targetRng.Value
End Sub
答案 0 :(得分:1)
您的Set targetRng = Range("$E$17:$BK$17")
是59列,而destRng = Excel.Range("E" & Rows.Count).End(xlUp).Offset(1, 0)
是一列(实际上它是一个单元格)。这就是你只粘贴一个单元格的原因" E17"。
为了使您的destRng
与targetRng
(相同的列数)相同,您需要Resize
范围为targetRng.Columns.Count
。
尝试以下代码:
Set destRng = Range("E" & Rows.Count).End(xlUp).Offset(1, 0).Resize(1, targetRng.Columns.Count)
destRng.Value = targetRng.Value
答案 1 :(得分:0)
这可能会做你想要的
Sub Mercy_CopyPaste_Row()
Dim lRow As Long
Dim ACell As String
Dim Col As String
Dim targetRng As Excel.Range
Set targetRng = Range("$E$17:$BK$17")
lRow = WorksheetFunction.Max(Range("E65536").End(xlUp).Row)
ACell = Range("E17").Address(RowAbsolute:=False, ColumnAbsolute:=False)
Range("$E$17:$BK$17").AutoFill Range(ACell & ":" & "BK" & lRow)
End Sub