2016-06-25 1 views
0

한 시트에서 범위를 가져 와서 다른 시트의 다음 빈 행으로 복사하려고합니다 (기본적으로 다음 빈에 대해 A12:D12 범위에 붙여 넣기 다른 시트의 행). 범위는 결코 변하지 않을 것입니다. 이런 질문을 많이 보았습니다. 사람들은 답변이 훌륭하다고 말하지만, 제대로 작동하지는 않습니다.Excel VBA - 한 시트에서 다른 시트로 범위 복사, 다음 빈 행

VBA의 새로운 기능입니다. 여기에 내가 사용하고 코드입니다 :

Private Sub CommandButton1_Click() 

    Dim NextRow As Range 
    Set NextRow = Range("A" & Sheets("Sheet3").UsedRange.Rows.Count + 1) 

    Sheet1.Range("A12:D12").Copy 
    Sheet3.Activate 
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False 
    Application.CutCopyMode = False 

    Set NextRow = Nothing 

End Sub 

이 실행하지만 실제로 Sheet3에 어떤 값을 붙여하지 않습니다. 내가 빠진 것이 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

감사합니다.

답변

2

방금 ​​NextRow을 정의하는 두 번째 줄에 문제가있었습니다.
더 좋은 방법이 있나요? 그것은 당신의 필요에 달려 있습니다; 개인적으로 VBA 매크로 중에 다른 셀을 활성화/선택하고 싶지는 않습니다. 나는 Sheet3.Activate을 제거 할 것이다. 또한 클립 보드를 사용하지 않고 '수동으로'항목을 복사하여 사용자의 클립 보드 내용을 변경하지 않도록합니다.

Private Sub CommandButton1_Click() 

    Dim NextRow As Range 
    Set NextRow = Sheet3.Range("A" & Sheet3.Rows.Count).End(xlUp).Offset(1, 0) 

    Sheet1.Range("A12:D12").Copy 
    Sheet3.Activate 
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False 
    Application.CutCopyMode = False 

    Set NextRow = Nothing 

End Sub