2017-04-20 6 views
-1

내가하려는 것은 E17 : BK17의 값을 마지막 행에 복사하는 것입니다. 지금 내가 가진 모든 것의 사본은 E17의 값이 마지막 행에 있지만 나머지 열 데이터는 마지막 행에 없습니다. 내가하는 일을 정말로 알지 못하기 때문에 도움이 될 것입니다. destRng = Excel.Range("E" & Rows.Count).End(xlUp).Offset(1, 0)은 하나의 열이있는 동안VBA 붙여 넣기 범위 마지막 행에 값

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

귀하의 destRng 1 열, 당신은 당신이 구글에서 도움을 받고하여 답을 찾을 수 있습니다 targetRng.Columns.Count –

+0

로 크기를 조정해야합니다. – Masoud

답변

1

귀하의 Set targetRng = Range("$E$17:$BK$17") 찾고있는 59 열이다 할 수있다 (실제로는 하나의 세포이다). 이것이 단일 셀 "E17"을 붙이는 이유입니다. 당신의 destRng 위해서는

targetRng의 같은 크기 (열 같은 수)로, 당신은 ResizetargetRng.Columns.Count의 범위가 필요합니다.

아래 코드를 사용해보십시오 :

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

큰 일을 해 주셔서 감사합니다. –

+0

@StevincentRianMoseley 당신은 환영합니다 :) –

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

거의 효과가 있었지만 이전 열의 모든 내용을 덮어 썼습니다. –