2011-04-07 3 views
0

내 2007 Excel 추가 기능에서 워크 시트를 추가 기능에서 사용자 ActiveWorkbook으로 복사하는 루틴이 있습니다. 내가 루틴을 실행하면 코드 줄을 실행 15 ~ 20 초 정도 걸립니다 :왜 ActiveWorkbook에 Excel 추가 기능에서 워크 시트를 복사하는 데 많은 시간이 걸립니까?

ThisWorkbook.Sheets(roadwayQuantTemplate).Copy Before:=ActiveWorkbook.Sheets(1) 

이 대체 버전이 동일한 지연이 있습니다 그렇게 걸리는 이유

ThisWorkbook.Sheets(roadwayQuantTemplate).Copy Before:=Worksheets(1) 

사람이 어떤 생각을 가지고 있습니까를 이 라인을 실행하려면 오래 걸립니까?

ActiveWorkbook.Worksheets.Add Before:=Worksheets(1) 

Copy 방법은 정말 Add 방법보다 실행하는 데 훨씬 더 오래 걸릴해야 : 나는 빈 워크 시트 (다음 수정) 및 지연 밖으로 코드 excecutes의 다음 줄을 추가하는 다른 루틴을 가지고? 복사중인 템플릿 워크 시트에는 많은 데이터가 없으며 워크 시트의 머리글을 구성하는 소수의 셀과 서식이 적용된 100 개 이하의 빈 셀이 있습니다.

아이디어가 있으십니까?

+0

차트가 있습니까? 업데이트가 필요한 수식? 모듈의 코드? 문제의 시트를 별도의 통합 문서로 저장하십시오. 파일 크기는 얼마입니까? 크기가 크면 다른 것이 있습니다 ... –

답변

0

추측 ...

시트 복사가 시트에 부착 된 VBA 코드를 복사, 그래서 예를 들어 당신의 시트는 다음 코드 (또는 복사에 실행할 수있는 다른 코드)가 있다면, 당신은 좋겠 가장 빠른 변형 배열에 워크 시트의 Worksheet.UsedRange을 지정하는 것입니다 만 셀 값이 필요한 경우

Private Sub Worksheet_Activate() 
Dim i As Long 
For i = 1 To 100000 
    Debug.Print "hello again" 
Next i 
End Sub 

시트 복사도 형식, 사진, 도표 등을 포착하고 있음을 할당합니다 지연을 참조 동일한 시트의 새 시트에있는 대상 범위로 다시 배열합니다.

+0

템플릿 시트와 관련된 코드가 없습니다. 템플릿 시트에서 가장 중요한 것은 서식과 작은 로고 이미지 1 개입니다. – cmerrell

0

추가 기능 내의 시트보다는 독립형 템플릿을 사용하는 것이 더 빠릅니다. 구문은

입니다. Worksheets.Add (형식 : TemplatePathAndFileName)

관련 문제