VBA 오류: 스택 공간이 부족합니다.

VBA 오류: 스택 공간이 부족합니다.

사용자가 다시 계산할 수 있도록 Excel 시트에 매우 간단한 매크로가 있습니다.

통합 문서에 다른 매크로/코드가 없고 이 통합 문서만 열려 있습니다.

Sub Calculate()
    Calculate
End Sub

이는 버튼으로 활성화됩니다.

그러나 누르면 두 개의 오류 상자가 나타납니다. 이미지를 참조하십시오.

은 무슨 뜻인가요 Out of stack space mean? 이 문제를 어떻게 해결합니까? 여기에 이미지 설명을 입력하세요

나는 이 웹사이트를 살펴보았습니다:

https://docs.microsoft.com/en-us/office/vba/언어/reference/user-interface-help/out-of-stack-space-error-28

기능이 너무 많다고 하네요 ?? 이 매크로는 이전에는 잘 작동했지만 거의 작동하지 않아 문제를 이해할 수 없습니다.

수식 탭 아래의 옵션을 사용하여 시트를 계산할 수 있습니다.

답변1

정의한 함수는 재귀적이며 스택이 모든 호출로 채워질 때까지 무조건 자신을 호출합니다.

서브루틴의 이름을 다음과 같이 변경해야 합니다.

Sub Calc()
    Calculate
End Sub

Calc()버튼에 연결하면 재귀를 피할 수 있습니다.

답변2

Calculate 내부에서 Calculate를 호출하고 있습니다. Calculate를 호출할 때마다 Calculate에 대한 또 다른 호출이 발생하고 Calculate가 호출됩니다... 그런 다음 결국 스택이 가득 차면 해당 오류가 발생합니다.

관련 정보