VBA 将范围值粘贴到最后一行
VBA Paste Range Values into last row
我想做的是将 E17:BK17 中的值复制到最后一行。现在我所拥有的只是将 E17 的值复制到最后一行,而不是将其余列数据复制到最后一行。任何帮助将不胜感激,因为我真的不知道我在做什么。
Sub Mercy_CopyPaste_Row()
'
' CopyPaste Macro
'
'
Dim targetRng As Excel.Range
Dim destRng As Excel.Range
Set targetRng = Range("$E:$BK")
Set destRng = Excel.Range("E" & Rows.Count).End(xlUp).Offset(1, 0)
destRng.Value = targetRng.Value
End Sub
这可能会满足您的需求
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:$BK")
lRow = WorksheetFunction.Max(Range("E65536").End(xlUp).Row)
ACell = Range("E17").Address(RowAbsolute:=False, ColumnAbsolute:=False)
Range("$E:$BK").AutoFill Range(ACell & ":" & "BK" & lRow)
End Sub
您的 Set targetRng = Range("$E:$BK")
是 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
我想做的是将 E17:BK17 中的值复制到最后一行。现在我所拥有的只是将 E17 的值复制到最后一行,而不是将其余列数据复制到最后一行。任何帮助将不胜感激,因为我真的不知道我在做什么。
Sub Mercy_CopyPaste_Row()
'
' CopyPaste Macro
'
'
Dim targetRng As Excel.Range
Dim destRng As Excel.Range
Set targetRng = Range("$E:$BK")
Set destRng = Excel.Range("E" & Rows.Count).End(xlUp).Offset(1, 0)
destRng.Value = targetRng.Value
End Sub
这可能会满足您的需求
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:$BK")
lRow = WorksheetFunction.Max(Range("E65536").End(xlUp).Row)
ACell = Range("E17").Address(RowAbsolute:=False, ColumnAbsolute:=False)
Range("$E:$BK").AutoFill Range(ACell & ":" & "BK" & lRow)
End Sub
您的 Set targetRng = Range("$E:$BK")
是 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