2016-06-05 7 views
1

시나리오 : Workbook2.xlsx, Workbook1.xlsx 및 VBA 편집기가 열려 있습니다. Workbook1.xlsx 및 Workbook2.xlsx는 VBA 프로젝트이며 각 시트에는 Sheet1 (Sheet1)이라는 활성 시트 개체가 하나씩 있습니다. Workbook2에서 CommandButton5를 클릭하면 A1에서 D10으로 A1 셀을 A1에서 D10으로 Workbook1의 A1 셀로 이동하려고합니다.
디버그 모드에서 "Set Move = ..."위로 마우스를 움직이면 Move = Nothing이됩니다.다른 통합 문서간에 셀 내용 복사

Private Sub CommandButton5_Click() 
    Dim Move As Range 
    Set Move = Workbooks(Workbook1).Worksheets(1).Range(Cells(1,1), Cells(4,10)) 
    Move.Select 
    Selection.Copy 
    Workbooks(Workbook2).Worksheets(1).Range(Cells(1,1), Cells(4,10)).Select 
    ActiveSheet.Paste 
End Sub 

답변

2

통합 문서 이름 주위에 따옴표를 사용해야합니다. 또한 통합 문서 작업 (범위 선택 및 복사 및 붙여 넣기)을 수행하려면 명시 적으로 통합 문서를 활성화해야합니다.

Private Sub CommandButton5_Click() 
    Dim Book As Workbook 

    ' Get Workbook 1 and activate it 
    Set Book = Workbooks("Workbook1") 
    Book.Activate 

    Dim Move As Range 
    Set Move = Book.Worksheets(1).Range(Cells(1, 1), Cells(4, 10)) 
    Move.Select 
    Selection.Copy 

    ' Get Workbook 2 and activate it 
    Set Book = Workbooks("Workbook2") 
    Book.Activate 

    Set Move = Book.Worksheets(1).Range(Cells(1, 1), Cells(4, 10)) 
    Book.Worksheets(1).Range(Cells(1, 1), Cells(4, 10)).Select 
    ActiveSheet.Paste 

End Sub 

또한 여러 통합 문서로 작업하기 위해, 그들은 모두 (즉 같은 엑셀 프로세스에서 실행) 같은 엑셀 인스턴스에서 열 수 있어야합니다. 서로 다른 Excel 프로세스에서 여러 통합 문서를 연 경우 동일한 매크로에서 모든 통합 문서에 액세스 할 수 없습니다.

Sub CommandButton5_Click() 

    Dim Source As Range 
    Workbooks("Workbook1").Activate 
    Set Source = Workbooks("Workbook1").Worksheets(1).Range(Cells(1, 1), Cells(4, 10)) 

    Dim Target As Range 
    Workbooks("Workbook2").Activate 
    Set Target = Workbooks("Workbook2").Worksheets(1).Range(Cells(1, 1), Cells(4, 10)) 

    Target.Value = Source.Value 
End Sub 
+0

들으 : 여기


클립 보드를 사용하지 않는 변종이다. 실행 시간 오류 1004가 발생합니다. 범위 클래스의 메서드 선택에 실패했으며 "Move.select"를 가리 킵니다. – HighEnergy

+1

응답을 업데이트했습니다 – NineBerry

+2

모든 통합 문서가 Excel의 같은 ​​인스턴스에서 열어야한다는 것은 맞지만 Excel 2013/2016의 인스턴스는 Excel의 동일한 인스턴스 아래에있는 경우에도 해당 통합 문서가 동일한 창을 공유하도록 요구하지 않습니다. – ThunderFrame

관련 문제