首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Application.OnTime不等待

Application.OnTime不等待
EN

Stack Overflow用户
提问于 2022-10-20 11:32:38
回答 1查看 26关注 0票数 0

我有一些图表是根据一个单元格中的值更新的。我正在尝试编写一个脚本,它每秒钟改变这个单元格中的值,并在这个过程中更新图形。然而,程序似乎不需要等待一秒来调用这个过程,而是直接运行所有的程序。我尝试过其他方法,比如Application.wait,它适用于等待,但它不更新图形。从我在互联网上发现的信息来看,Application.OnTime似乎是最好的选择。有人能帮我弄清楚为什么Application.OnTime不等一秒吗?这是我的代码:

代码语言:javascript
复制
Sub graphOverTime()


Do While Range("N5").Value = "Running"
    
    'changes cell N5 to Not running on condition
    Call my_procedure

    'Update value in D3 that impacts the graphs
    current_month = Range("D3").Value

    Range("D3").Value = 
     Application.WorksheetFunction.EoMonth(current_month, 1)
    
    DoEvents
    
    'Wait one second to rerun procedure
    Application.OnTime Now + TimeValue("0:00:01"), "graphOverTime"
      
        
Loop


End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-20 12:05:06

您的主要问题是Do While循环,这会导致Application.OnTime设置graphOverTime的重叠计划调用。首先,以下是你想做的事情的一种方式

代码语言:javascript
复制
Sub graphOverTime()
    If Range("N5").Value = "Running" Then
        'changes cell N5 to Not running on condition
        Call my_procedure
    
        'Update value in D3 that impacts the graphs
        Range("D3").Value = Application.WorksheetFunction.EoMonth(Range("D3").Value, 1)
        
        DoEvents
        
        'Wait one second to rerun procedure
        Application.OnTime Now + TimeValue("0:00:01"), "graphOverTime", False
    End If
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74139169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档