2017-09-14 1 views
-1

두 개의 매크로를 VBA에서 동시에 실행할 수 있습니까?동시에 두 개의 VBA 매크로를 실행하십시오.

그래서 데이터베이스에서 입력을 가져 와서 뉴스 스트립과 같은 데이터를 계속 보여줄 매크로가 하나 있습니다. 내가 작성한 코드.

다른 데이터와 차트도 같은 시트에 있습니다. 문제는 사용자가 명령 단추를 누르거나 라디오 단추를 선택하여 동일한 워크 시트의 데이터/차트를 변경하기 위해 다른 매크로를 실행할 수 있는지 여부와 같은 필름 스트립이 화면에 계속 흐르게하는 것입니다.

감사합니다.

+2

질문에 구체적으로 기재하십시오. Excel VBA 또는 Access VBA에 관한 것입니까? 관련없는 태그를 제거하십시오. –

+2

두 개의 호스트 프로세스가 동시에 실행되고 있습니다. 최고 다. 하나의 호스트 프로세스에서 2 개 이상의 VBA 매크로를 동시에 실행할 수는 없습니다. 모두 STA (단일 스레드 아파트) COM 스레드에서 실행됩니다. –

+0

엑셀 VBA입니다. 매크로는 엑셀 VBA에 있습니다. 그러나 데이터베이스에 액세스하고 있습니다. 나는 액세스 데이터베이스 철저한 ADO와 Excel을 연결했습니다. –

답변

2

No. VBA는 단일 스레드입니다. 따라서 한 태스크는 다른 태스크가 실행되기 전에 완료되어야합니다.

외부 프로세스를 시작하기 위해 Shell을 사용하여 속일 수는 있지만 그 또 다른 이야기입니다.

+0

설명해 주셔서 감사합니다. 그런 다음 첫 번째 매크로가 계속 실행될 수 있습니다. 이제 사용자가 다른 매크로를 실행하기 위해 클릭하면 첫 번째 매크로가 자동으로 중지되고 두 번째 매크로가 실행됩니다. 두 번째 매크로 실행이 끝나면 첫 번째 매크로가 자동으로 다시 시작됩니다. –

+0

@ANANDAGRAWAL 무엇이든 가능합니다 ... 조건에 대한 첫 번째 매크로 검사 만하면됩니다. '만약에 다른 MacroIsWaitingToRun 그렇다면 IWillKeepRunning'과 같은 것. –

+0

@BrandonBarney 실행중인 매크로가 스레드를 잠그지 않게하려면 Excel 응용 프로그램을 잠그지 않고 두 번째 매크로를 실제로 시작하지 못하도록 잠시 동안 (매초마다) DoEvents를 호출해야합니다. –

관련 문제