2017-04-20 11 views
-1

Was ich versuche, ist, kopieren Sie die Werte in E17: BK17 in die letzte Zeile. Im Moment mit dem, was ich habe alle Kopien ist der Wert von E17 in die letzte Zeile, aber nicht die restlichen Spalten Daten in die letzte Zeile. Jede Hilfe würde geschätzt werden, da ich nicht wirklich weiß, was ich mache.VBA Paste Range Werte in die letzte Zeile

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

Ihre destRng ist 1 Spalte, müssen Sie es targetRng.Columns.Count –

+0

Resize Sie Ihre Antwort, indem sie Hilfe von Google finden kann. – Masoud

Antwort

1

Ihre Set targetRng = Range("$E$17:$BK$17") ist 59 Spalten suchen, während destRng = Excel.Range("E" & Rows.Count).End(xlUp).Offset(1, 0) eine einzelne Spalte ist (eigentlich ist es eine einzelne Zelle). Das ist der Grund, warum Sie nur eine einzelne Zelle "E17" einfügen.

Damit Ihre destRng die gleiche Größe von targetRng (gleiche Anzahl von Spalten) sein, müssen Sie den Bereich targetRng.Columns.Count-Resize. unter

den Code Versuchen:

Set destRng = Range("E" & Rows.Count).End(xlUp).Offset(1, 0).Resize(1, targetRng.Columns.Count) 
destRng.Value = targetRng.Value 
+0

Arbeitete super vielen Dank für die Erklärung zu mir! –

+0

@StevincentRianMoseley du bist willkommen :) –

0

was Dies kann tun sind Sie

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 
+0

fast funktioniert, aber es überschrieb alles in den vorherigen Spalten –

Verwandte Themen