Excel SAS运行时暂停VBA

Excel SAS运行时暂停VBA,excel,sas,vba,Excel,Sas,Vba,我通过VBA中的olesas步骤调用SAS。我的excel表格中有一个字段,上面写着“成功”、“处理”或“失败” 我已将sas设置为在遇到任何错误时退出,并将“成功”作为最后一步输出(如果它运行到完成时没有错误) 我正在使用do while循环检查SAS是否仍然忙(olesas.busy=“True”),在SAS运行时暂停VBA,然后,如果块未显示成功,则将块更改为“失败”。这一切似乎都很好,只是即使SAS已终止,最后一步仍会执行,并将块更改为“successful”。你知道为什么会这样吗 do

我通过VBA中的olesas步骤调用SAS。我的excel表格中有一个字段,上面写着“成功”、“处理”或“失败”

我已将sas设置为在遇到任何错误时退出,并将“成功”作为最后一步输出(如果它运行到完成时没有错误)

我正在使用do while循环检查SAS是否仍然忙(olesas.busy=“True”),在SAS运行时暂停VBA,然后,如果块未显示成功,则将块更改为“失败”。这一切似乎都很好,只是即使SAS已终止,最后一步仍会执行,并将块更改为“successful”。你知道为什么会这样吗

do while (OleSAS.busy = "True")
application.wait (now + TimeValue("0:00:02"))
Loop
if sheet1.range("box")="busy" then sheet1.range("box")="failed"
我无法共享代码的其余部分,但我使用了一个“errabend”语句,在出现错误时使sas退出。我本以为do-while会让一切暂停,直到sas完成,然后只有在最后一个sas步骤没有完成时才更改为failed

SAS代码:

data _null_;
file new ;
put 'Successful';
run;
VBA呼叫

olesas.submit ("filename new DDE 'excel'|" + workbookpath + "\[" + workbookname + "]" + sheet1 + r1c1:r1c1' notab;")

是的。一切都通过excel运行。我确实描述了代码!但是edit仍然不够,您说它总是执行success语句……在您提供的代码中看不到这一点。有些人可以猜测,但这就是全部,因为我们不知道您的代码实际上在做什么,而且您似乎不想在这里为我们提供足够的信息来帮助您确定原因。帮助我们帮助您很抱歉,我已经添加了这段代码。您的SAS代码中没有任何条件方面,因此它将无论如何执行。