2017-10-04 10 views
-1

여러분 모두 고맙습니다. 미리 감사드립니다.Excel VBA - 범위라는 다양한 통합 문서에서 하나의 "요약본"통합 문서로 복사

저는 VBA에서 큰 전문가는 아니지만 때로는 제가 일하고있는 반복적 인 작업에 좋은 시간을 갖도록 도와줍니다.

다양한 파일의 정보를 하나의 "요약본"파일로 수집하고 싶습니다. 모든 파일에서 이러한 정보에 대한 조회를 쉽게하기 위해 일부 범위 (각 셀 하나씩)의 이름을 지정했습니다.

Sub collectdata() 
    Set a = Workbooks.Open("C:\full address\Project1.xlsx") 
    Set b = Workbooks.Open("C:\full address\Project2.xlsx") 
    Set c = Workbooks.Open("C:\full address\Project3.xlsx") 

    ThisWorkbook.Sheets("Data").Range("C3") = a.Application.Range("Project1_Total") 
    ThisWorkbook.Sheets("Data").Range("C3") = b.Application.Range("Project2_Total") 
    ThisWorkbook.Sheets("Data").Range("C3") = c.Application.Range("Project3_Total") 

    a.Close savechanges:=False 
    b.Close savechanges:=False 
    c.Close savechanges:=False 
End Sub 

나는 오류가 난하지만 난 그것을 해결하는 방법을 알고하지 않는 이유 알고 있다고 생각 (1004)에 붙어 :


는 여기에 내가 쓰기 시작 라인입니다.

하나의 "프로젝트"로 모든 것이 모두 정상입니다.
하지만 두 번째 파일을 추가하면 오류 1004가 발생합니다.

하나의 프로젝트에서 하나의 명명 된 범위로 괜찮습니다. 하지만 동일한 파일에서 두 번째로 이름이 지정된 범위를 추가하면 오류 1004가 발생합니다.

시간 내 주셔서 감사합니다.

+0

a.Sheets(), b.Sheets() 등이 필요합니다. 왼쪽에서 a.Application, b.Application 등이 아닌 ... – CallumDA

답변

0

이이 범위는 첫 번째 시트에 있다는 가정하에 작동합니다 :

당신이 C3를 여러 번 덮어 싶지 않다고 가정
ThisWorkbook.Sheets("Data").Range("C3") = a.Sheets(1).Range("Project1_Total") 
ThisWorkbook.Sheets("Data").Range("D3") = b.Sheets(1).Range("Project2_Total") 
ThisWorkbook.Sheets("Data").Range("E3") = c.Sheets(1).Range("Project3_Total") 

. 범위가있는 시트를 모를 경우 find을 사용하여 통합 문서에서 범위를 찾을 수 있습니다.

+0

CallumDA와 결합하여이 문제를 해결했습니다. 문제. 도와 주셔서 감사합니다. –

+0

우수. 그러면 질문을 끝내기위한 대답을 수락하십시오. – JensS