2013-04-01 2 views
9

외부 링크를 사용하거나 스프레드 시트를 열고 VBA를 사용하여 셀을 복사 할 때 성능이 향상되는지 궁금합니다.Excel : 외부 링크를 사용하면 성능이 향상 될 수 있습니까?

내가 Excel이 단지 같은 파일을 열 수 있는지 상상하지만, 나는 다음과 같은 코드를 사용하여 테스트 할 때 외부 링크가 밖으로 빠르게 제공 :

Dim t As Double 
Dim rng As Range 

For Each rng In shtId.Range("A1:A5") 
    t = Now 
    ThisWorkbook.Names("rngID").RefersToRange = rng 
    ThisWorkbook.UpdateLink "H:\manualData.xlsx", xlExcelLinks 
    Debug.Print "link: " & Format(Now - t, "######.0000000") 

    t = Now 
    Workbooks.Open "H:\manualData.xlsx", readonly:=True 
    ActiveWorkbook.Close False 
    Debug.Print "open: " & Format(Now - t, "######.0000000") 
Next 


Results: 

link: .0000116 
open: .0000231 
link: .0000116 
open: .0000347 
link: .0000000 
open: .0000347 
link: .0000000 
open: .0000347 
link: .0000000 
open: .0000347 

통합 문서 조회 수식 셀 범위를 가지고 ID 필드에 키 입력. 이 수식에는 외부 링크가 있습니다. 이를 테스트하기 위해 ID를 변경하고 강제로 업데이트합니다. 파일 열기 방식을 테스트하기 위해 소스 파일을 열고 닫습니다.

네트워크상의 낮은 대역폭으로 인해 문제가있는 프로세스의 속도를 높이고 싶습니다. 나는 이미 다양한 옵션을 탐구했고 이것이 유효한 것인지 이해하고 싶습니다. 이 주제에 대해 조사한 결과 일부 사람들은 외부 링크로 인해 성능 문제가 발생할 수 있다고 말하면서 일부는 그렇지 않다고 말합니다. 외부 링크 뒤에있는 메커니즘에 대한 더 나은 아이디어를 얻고 싶습니다. 구현할 때 무엇을 기대할 수 있는지 이해할 수 있습니다.

의견이 있으십니까?

+0

좋은 질문입니다. 필자는 외부 링크를 많이 사용하지는 않지만 외부 링크를 업데이트하는 것만으로 (즉, 내용에 직접 액세스하는 것) 파일을 열고 내용에 액세스하고 파일을 닫는 것보다 빠르다. 그러나 두 통합 문서가 모두 열려있을 때 링크를 업데이트하는 것이 더 빠른 경우도 생각납니다. 그래서, 좋은 질문입니다. +1, 다른 사람들이 그것에 대해 말하는 것을보고 싶어합니다. –

+0

(1) ScreenUpdating set false로 다시 측정하십시오. (2) 측정 된 시간을 2 또는 3 초 이상 구동 할 수있는 충분한 데이터 값. 성능 측정치가 너무 낮아서 의미있는 비교를 위해 쓸모 없게 만듭니다. –

+3

또한, 솔직히 말해서 외부 링크가있는 스프레드 시트를 '부러진'스프레드 시트로 간주합니다. 잘못된 결과가 발표 될 때까지는 시간이 걸릴뿐입니다. 적절한 데이터 관리를 지원하지 않는 분석 도구 대신 데이터를 올바르게 관리 할 수있는 데이터베이스에 데이터를 저장하십시오. –

답변

1

더 많은 작업이 있지만 XML 파일 (MSXML 사용)에서 데이터를 읽거나 쓰면 성능 문제가 해결됩니다. 대역폭이 낮은 특정 상황에서 강제로 채택한 경로입니다.

VBA가 데이터를 검색하고 계산을 실행할 수있는 속도는 여러 링크를 사용하는 것보다 훨씬 빠릅니다. 상황에 따라 다르다. 통합 문서 열기 이벤트 또는 특정 변경 이벤트 (ComboBox 등)에서이 작업을 수행 할 수 있습니다. 이는 kB의 데이터로만 작업하기 때문입니다.