2011-10-03 4 views
2

는 내가vba에서 application.calculation을 복원하지 않으면 어떤 영향이 있습니까?

application.calculation = xlcalculationmanual 

로 설정하고 같은 긴 VBA 코드 후 나는이 한 Statment 20 초를 복용하고 때로는 최대 때 걸려있다 내가 본 어떤 말

application.calculation = xlcalculationautomatic 

에서 이런 짓을 나는 그 문에 대한 시간의 촬영 많은, 그래서 난 그냥 복원 무시 시간을 저장하는 이유를 이해 해달라고

application.calculation = xlcalculationautomatic 

xlcalculation를 복원 그것. 다시 복원하지 않으면 어떤 효과가 있습니까?

답변

2

결과는 계산이 수행되지 않는다는 것입니다. 따라서 공식이 =A1+A2 인 셀이 있고 A1 및 A2 값을 변경하면 계산을 수동으로 강제 수행 할 때까지 결과가 A1과 A2의 현재 값의 실제 합계로 업데이트되지 않습니다. F9 또는 select 자동 계산. 이 작업은 도구> 옵션 ...> 계산에서 수동으로 수행 할 수도 있습니다.

0

내가 의심하는 것은 그것이 enture 통합 문서를 다시 계산한다는 것입니다.

위험하므로 자동 계산을 사용하지 않는 것이 좋습니다. (예 : 최근 값 대신 오래된 캐시 된 값을 볼 수 있음)

대신 문제가 재 계산되었는지 확인해야합니다. 즉, 수동으로 시트를 다시 계산하고 소요 시간을 확인해야합니다. 그게 문제라면, 계산 속도를 높이는 방법 (예 : 데이터 분할, 정적 참조 사용 등)을 수행해야합니다.

+2

반대로! 워크 시트 수식의 입력에 의존하지 않는 코드의 실행을 최적화하려면 자동 계산을 사용하지 않는 것이 좋습니다. 칼이나 숟가락처럼 부적절하게 사용하면 실제로 위험합니다. 그러나 먹을 때기구를 사용하지 않는 것은 변명의 여지가 없습니다! –

+1

Jean-Francois에 동의합니다. 현재 계산 설정을 저장하고, 수동 계산으로 변경하고, 코드를 실행 한 다음 이전 계산 설정으로 복원하는 것이 표준 좋은 코딩입니다. 찰스 윌리암 (Charles William)의 사이트에는 계산에있어 알아야 할 모든 것이 있습니다. [의사 결정 모델] (http://www.decisionmodels.com/calcsecretsh.htm) – brettdj

관련 문제