none
请问如何优雅地实现暂停功能 RRS feed

  • 问题

  • 刚接触vb编程不久,遇到个问题,需求如下:
    1. A列通过SQL SERVER存储过程返回日期信息,比如20170724,20170723,20170722,...
    2. B列在等待A列返回后,以同行A列日期为参数,调用外部函数返回某些数据
    比如B3 = Func(Constant_Number,$A3)
    3. 执行第二个存储过程,把B列的函数返回的结果作为参数进行保存.(录入数据库)

    本来的执行过程应该是:
    1. 打开这个Excel,VB默认开始调用第一个存储过程,并返回日期
    2. 函数拿到日期字段,开始计算并返回结果到B列,这个过程大概需要一到三秒钟
    3. 将函数返回所在B列字段进行返回

    问题: 第二个存储过程先于函数执行,就是说函数还在做计算的时候,该单元格显示为fetching,此时还未等函数返回,后面的存储过程就开始执行了,本来要录入数据库的应该是
    Func(Constant_Number,$Ax),实际上录入的是"fetching..." 囧

    尝试解决:
    1. Application.Wait waitTime (失败)
    2. Sleep xxxx (失败)

    目前折中解决办法:添加一个按钮,把第二个存储过程执行放在按钮里,等函数执行结果返回以后点一下...
    求助各位:怎么才能在不影响函数执行的前提下让VB暂停,等函数执行结束以后再继续向下运行?
    2017年7月24日 3:20

全部回复