2017-10-19 2 views
1

"보고서"라는 시트에서 같은 행의 정보를 복사하는 매크로를 작성하려고합니다 (숫자가 분명히 변경 될 것입니다). 그리고이를 "데이터"시트에 붙여 넣습니다. 첫 번째 행에 헤더가 있습니다. 다음 빈 행에 붙여 넣으려고 값을 가져 오려고하는데 제대로 작동하지 않는 것 같습니다.VBA 다음 빈 행에 행을 복사하여 붙여 넣기

다양한 질문에서 일부 코드를 조합하여 시도해 보았습니다. 당신의 도움을 다시

Sub Insert_Data() 
' 
' Insert_Data Macro 
Sheets("Report").Range("B9:F9").Copy 
Sheets("Data").Range("A1").PasteSpecial Paste:=xlPasteValues, 
Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
End Sub 
Sub PSData_Transfer() 

Sheets("Report").Range("B9:F9").Copy 

Dim lastrow As Long 
lastrow = Sheets("Data").Range("A65536").End(xlUp).Row 

Sheets("Data").Activate 
Cells(lastrow + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 


End Sub 

감사 :

여기 내 코드입니다!

+0

검색의 IT는 값을 얻는 것이 훨씬 빠릅니다 모든 여분의 jargin을 복사하는 것을 좋아하는 매크로, 어떻게 작동하지 않습니까? 좋아 보인다. – SJR

+0

값을 붙여 넣을 때 헤더 바로 아래가 아닌 59 행에 붙여 넣습니다 – jh144

+0

@SJR 행 59에서 완벽하게 작동하지만 아래쪽으로 시작하는 이유를 알 수 없습니다 – jh144

답변

1

코드를 수정하려면이 코드를 조금 수정해야 할 수도 있지만 현재 사용중인 워크 시트에서 사용하고있는 코드를 자유롭게 사용하면 완벽하게 작동합니다.

Sub Insert_Data() 

    For R = LR To 2 Step -1 ' Change the 2 in "To 2" to the row just below your header, 
           ' but typically row 2 is the second cell under header anyways 
     Call CopyTo(Worksheets(2).Range("B" & R & ":C" & R), Worksheets(1)Range("A:B")) 
    Next R 

End Sub 

Private Function CopyTo(rngSource As Range, rngDest As Range) 

    LR = rngDest.cells(Rows.Count, 1).End(xlUp).row 

    rngDest.cells(LR + 1, 1).value = rngSource.cells(1, 1).value 
    rngDest.cells(LR + 1, 2).value = rngSource.cells(1, 2).value 

End Function 

나는 느린 경우 복사 방법을 사용 싫어하고 두 번째 만 값

관련 문제