2014-12-03 6 views
0

15 분마다 계속 실행되는 VBA 코드가 있습니다. 이 코드는 처음에는 잘 실행되지만 일정 기간 (약 4 시간에서 5 일까지 다양 함) 후에 Excel이 충돌합니다.연속 루프/반복으로 인해 Excel이 중단됨 (시간/일 이후)

VBA 충돌 (디버그 옵션 사용)이 아니지만 Excel이 멈추고 응용 프로그램을 다시 시작해야한다고 말합니다.

나는 Excel 용으로 설계된 방식으로 사용하려고합니까? 이 문제를 피하기 위해 일부 메모리/캐시를 지워야합니까?

+0

코드를 게시 할 수 있습니까? 설명이 다를 수 있습니다. 또한, 해당 시스템의 일부 시스템 사양. – peege

+1

Windows 예약 된 작업을 대신 사용해보십시오. 파일을 열 때 매크로가 자동 실행되도록 할 수 있습니다. –

답변

1

OnTime 응용 프로그램의 실패로 인해 나는 웹에서 5 분마다 데이터를 긁어 모으는 Excel 도구로 이전에 같은 문제가 발생했다고 생각합니다. 때로는 특정 로그 나 오류/경고없이 추락했습니다.

1) Workbook_Open 이벤트에서 내가 넣어 가지고 : 여기에 내가 구현 한 해결 방법입니다

myMacro 'the call to my procedure when the workbook is opened 
ThisWorkbook.Save 'I was saving the results, I don't know if you need this 
ThisWorkbook.Close 'I was closing my Workbook 

2) 윈도우 시스템에서, 나는 시스템에 일반적으로 설치 도구를 (사용 된) 실행 파일이 시스템 폴더 (C : \ Windows \ System32 \ taskschd.msc)에있는 작업 스케줄러으로 매우 직관적이며 사용하기 쉽습니다. 나는 opening the workbook에 구성된 5 분마다 작업을 예약했습니다 (이 작업이 완료되면 내 프로 시저가 호출 될 수 있도록 열린 workbook-event 매크로가 트리거되고 통합 실행 후 통합 문서가 두 줄의 코드로 저장되고 저장됩니다. 위에 게시했습니다.)

비록 이것이 기술적 인 증거로 증명할 수 없다고하더라도, 나는 장기간에 Application.OnTime을 너무 많이 신뢰하지 않는다. 몇 분 동안 10 초마다 약간의 작업을하면 정상적으로 작동하지만 매크로가 정기적으로 실행되어야하며 5 시간마다 한 번씩 Excel 프로세스가 중단되는 것을보고 싶지 않을 때 ... 작업을 Excel 응용 프로그램 메서드가 아닌 Microsot 도구로 가져옵니다.

내 경험 - 내 엑셀 매크로에서 OnTime 방법은 1 시간 (최소 충돌), 7 시간 (충돌 전 시간의 최대 길이) 사이의 기간에 충돌 한과. 나는 일하기 전에 일을 끝내기 위해 외출하기 전에 집에서 거리 연결을 열고 아침에 그것을 실행하도록 강요 받았다. - 내 동일 매크로, 위에서 설명한 절차를 사용하면 결코이 더 이상 충돌하지 않습니다. 나는 시스템 프로세스가 엑셀의 것보다 훨씬 더 믿을 만하다고 믿는다. (그러나 나는 이것을 증명할 증거가 없다. 그래서 금으로 가져 가지 말라.)