Method not run if code after Application.Run

A

Antonio

The following code successfully opens a workbook and runs a method in that
workbook

Sub OpenAPS()

Const wb = "C:\Ats\Excel\APS.xls"

Workbooks.Open (wb)

Range("Server").Value = "abc1"

Application.Run ("APS.xls!Sheet4.subscribe")

End Sub


However, if I add more code after the Application.Run line the new code is
not run or, the APS.xls!Sheet4.subscribe method is not fully executed, which
leads to errors.

For example in

Sub OpenAPS()

Const wb = "C:\Ats\Excel\APS.xls"

Workbooks.Open (wb)

Range("Server").Value = "abc1"

Application.Run ("APS.xls!Sheet4.subscribe")

Call GetData

End Sub

The GetData sub is not executed.

The APS.xls!Sheet4.subscribe method takes a few seconds to execute fully.

I don't know if the reason is that the Call GetData is run before the
APS.xls!Sheet4.subscribe is run fully.

If so, how can I force a method to run only after a previous one is exited?

If that is not the reason, what is?

Thanks,

Antonio
 
A

Antonio

Hello Bob,

Thank you for your help.

The OnTime works but it is not ideal.
Using Sleep, also works but it is not ideal.

The problem is that I do not know in advance how long to sleep the thread
for because the time it takes to run the application varies.

I do know that it has run as required when
Workbooks("APS.xls").Worksheets("4").Cells(40, 1) is not empty.

Consequently, I have tried:

While IsEmpty(Workbooks("APS.xls").Worksheets("4").Cells(40, 1))

Sleep (100)

Wend

GetData

However, the application get into an infinite loop, and it does not execute
GetData.

Thanks,

Antonio
 
A

Antonio

As soon as I break the program (Ctrl + Break) the
Workbooks("APS.xls").Worksheets("4").Cells(40, 1) is populated

It seems again, that placing most code (the on time excluded) after
Application.Run ("APS.xls!Sheet4.subscribe") does not let the subscribe
rutine run
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top