美文网首页
VBA ActiveWorkbook.RefreshAll和Li

VBA ActiveWorkbook.RefreshAll和Li

作者: 大鹏_Power | 来源:发表于2019-02-27 20:33 被阅读0次

    VBA中,下面这两段代码分别使用的时候不会报错,逐行运行也不报错,但是如果放在一起,前后搭配,则会报错:

    ActiveWorkbook.RefreshAll 
    '全部刷新
    
    Sheets(1).Range("需要刷新的表名").ListObject.QueryTable.Refresh 
    '刷新指定的具备表结构的表
    

    常见的是这样


    报错1

    有时候是这样


    报错2

    解决方法就是在两行之间写入:

    Application.CalculateUntilAsyncQueriesDone 
    '直到刷新完毕
    

    因此完整的代码是:

    ActiveWorkbook.RefreshAll '全部刷新活动工作簿
    Application.CalculateUntilAsyncQueriesDone '直到刷新完毕
    sheets(1).Range("刷新表名").ListObject.QueryTable.Refresh BackgroundQuery:=False '执行刷新某个PQ或PP返回的表
    

    其中,Range("刷新表名")是你要刷新的具备表结构的表名称,也可也写成表格中的一个单元各的地址,比如表格区域在A1:D100,则可以写该区域任意一个单元格地址,均可正常刷新。后面的是一些特定用法,有兴趣的可以在微软官网看看。

    自己在此做个备忘,有遇到该难题的朋友也可以参考下!

    相关文章

      网友评论

          本文标题:VBA ActiveWorkbook.RefreshAll和Li

          本文链接:https://www.haomeiwen.com/subject/dqrquqtx.html