2012-07-16 5 views
0

다른 통합 문서가 닫혀 있으면 Excel SUMIFS 함수를 실행할 수 없습니다. 그래서, 필자는 통합 문서를 열고, 'for'루프를 반복하고 값 열이 내 전체 변수에 추가되어야하는지 확인하는 SUMIFS 함수를 작성했습니다.함수 SUMIFS가 반복 (보다)보다 나은 이유

'for'루프를 제거하고 "WorksheetFunction.SumIfs (...)"를 사용하는 또 다른 기능을 수행했습니다. 내 새 기능이 이전 기능보다 빠르게 실행되었습니다.

Excel 기능과 VBA 반복의 마법은 무엇입니까?

답변

2

에서 : http://msdn.microsoft.com/en-us/library/ff726673.aspx#xlUsingFuncts

(강조는 추가)

사용자 정의 함수

사용자 정의 C 또는 C로 프로그래밍하는 기능 ++ 및 그 사용 는 C API (XLL 추가 -in 함수)는 일반적으로 VBA 또는 자동화 (XLA 또는 자동화 추가 기능)를 사용하여 개발 된 사용자 정의 함수보다 빠르게 수행합니다. 자세한 내용은 Excel 2010 XLL 개발을 참조하십시오.

XLM 기능도 CAPI를 C XLL 추가 기능과 동일한 밀접하게 사용하기 때문에 빠를 수 있습니다. VBA 사용자 정의 함수의 성능은 프로그램 및 호출 방법에 민감합니다.

빠른 VBA 사용자 정의 함수

VBA 사용자 정의 함수를 사용하는 엑셀 수식 계산 및보다 워크 시트 함수를 사용하는 것이 더 빠릅니다. 각 사용자 정의 함수 호출 에 대해 작은 오버 헤드가 있고 Excel에서 정보를 사용자 정의 함수로 전송하는 중대한 오버 헤드가 있으므로 입니다.하지만 잘 정의 된 사용자 정의 함수는 복잡한 배열 수식보다 훨씬 빠릅니다.

0

더 많은 통찰력을 얻는 한 가지 방법은 다양한 입력 크기에 따라 성능 비율이 어떻게 변하는 지 테스트하는 것입니다. 예를 들어, 입력 비율이 100 배 증가 할 때 성능 비율이 거의 동일하게 유지되는 경우 VBA 추상화 오버 헤드 때문일 수 있습니다.