2016-09-08 2 views
1

통합 문서를 읽고 다른 통합 문서의 일부 셀을 복사하고 싶습니다. 코드의 목적은 다른 시트의 셀을 한 파일에서 다른 파일로 복사하는 것입니다. VBA - 열린 통합 문서 활성화

이 제안을 위해

, 나는이 코드 생성 : 첫 번째 시트에있는 프로세스가 완료되면

Sub processCopy(file) 

'Abrir documento 
Workbooks.Open Filename:=file, UpdateLinks:=0 


cantn = ThisWorkbook.Sheets.Count 
cantv = Sheets.Count - 5 
cantn = cantn - 4 

'Recorrer los libros del documento abierto 
For i = 1 To (Sheets.Count - 5) 

    'Obtener nombre del libro seleccionado 
    nombre = Sheets(i + 2).Name 
    'Filtrar los libros no necesarios 
    If nombre <> "Instructions" And nombre <> "Executive Summary" And nombre <> "Process Update" And nombre <> "Template" And nombre <> "Notes" Then 

     If cantv >= cantn Then 
     ThisWorkbook.Sheets(3).copy after:=ThisWorkbook.Sheets(cantn + 2) 
     cantn = cantn + 1 
     ThisWorkbook.Sheets(cantn + 2).Name = nombre 
     ElseIf nombre <> ThisWorkbook.Sheets(cantn + 2).Name Then 
     ThisWorkbook.Sheets(cantn + 2).Name = nombre 
     End If 

     Workbooks.Open Filename:=file, UpdateLinks:=0 

     ActiveWorkbook.Worksheets(nombre).Activate 

     ActiveWorkbook.Sheets(nombre).Range("C4:O23").Select 
     Selection.copy 
     ThisWorkbook.Sheets(nombre).Range("C4:O23").PasteSpecial 

을 나는 새 파일에 프로세스를 시작하는 다른 시트가있는 경우 비교합니다. 그렇지 않으면 (항상) 복사 및 붙여 넣기 프로세스를 시작하는 새 시트를 만들지 만 ThisWorkbook 및 ActiveWorkbook 함수는 동일한 시트 (동일한 통합 문서에서 복사 및 붙여 넣기)에서 작동하고 한 파일에서 다른 파일로 작업하지 않습니다.

, 내가 처음 통합 문서를 열 이유

하지만, 복사 및 붙여 넣기 완료의 과정은,이 메시지가 나타날 때 :

Error image

내가 뭘 할 수있는 것이이 문제를 해결하기 위해? 모든

답변

1

에 대한

덕분에 통합 문서 개체를 만들고 당신이 그것에 열고있는 통합 문서 지정 :

Dim wb as Workbook 
Set wb = Workbooks.Open(Filename:=file, UpdateLinks:=0) 

그런 다음 당신이

그래서이 변수를 참조 대신 ActiveWorkbook 할 수 있습니다를 코드가있는 통합 문서의 내용을 변경하고 ThisWorkbook을 사용하십시오.

다른 통합 문서의 내용을 변경하려면 wb

관련 문제