如何通过Excel工作表安排基于时间的循环?

时间:2015-06-01 17:22:53

标签: excel vba excel-vba

我在Excel中创建一个仪表板,连接数据库并每15分钟更新一次。我已经使用下面的代码为此创建了一个调度程序。但是,我还希望在15分钟的等待时间内,仪表板会循环显示每张纸张1分钟的所有纸张。如何在我的代码中构建第二级计划?

my_procedure是连接到数据库并更新工作簿中数据的宏。

Public Sub scheduler_1()
    Call my_procedure
    Call scheduler_2
End Sub

Public Sub scheduler_2()
    RunWhen = Now + TimeValue("00:15:00")
    Application.OnTime RunWhen, "scheduler_1"
End Sub

2 个答案:

答案 0 :(得分:0)

看起来我能够很快解决它。我在scheduler_2宏中添加了一个循环

Public Sub custom_wait(ByVal i As Integer)
    newHour = Hour(Now())
    newMinute = Minute(Now())
    newSecond = Second(Now()) + i
    waitTime = TimeSerial(newHour, newMinute, newSecond)
    Application.Wait waitTime
End Sub

custom_wait宏的位置是:

struct S
{
    using iterator =
        boost::indirect_iterator<std::vector<char*>::iterator>;
    using const_iterator =
        boost::indirect_iterator<std::vector<char*>::const_iterator>;

    iterator begin() { return iterator(vec_.begin()); }
    iterator end() { return iterator(vec_.begin()); }
    const_iterator begin() const { return const_iterator(vec_.begin()); }
    const_iterator end() const { return const_iterator(vec_.begin()); }
private:
    std::vector<char*> vec_;
};

答案 1 :(得分:0)

您可以每分钟运行一个调度程序来循环遍历工作表,并使用Static Date内的scheduler_2变量在15分钟后计算出来,然后运行my_procedure