以静默方式刷新 Excel 2016 上的电源查询



在 Excel 2013 中,我使用以下 VBA 子以静默方式刷新使用电源查询加载的表:

Public Sub RefreshData()
    Sheet1.Range("my_data_table").ListObject.TableObject.Refresh
End Sub

迁移到 Excel 2016 后,相同的代码具有不同的行为,这意味着在加载数据后,它会将视图更改为新的数据表。

有没有办法恢复旧行为?

编辑:我做了一个模型,更准确地描述了问题,可以下载:这里

可能您只能关闭屏幕更新并切换回原始工作表。

Public Sub RefreshData()
    Application.ScreenUpdating = False
    Sheet1.Range("my_data_table").ListObject.TableObject.Refresh
    DoEvents 'let refresh finish first
    Worksheets("SheetNameWhereRefershButtonIs").Activate 'switch back to a specific sheet
    Application.ScreenUpdating = True
End Sub

或者正如@Chronocidal指出的那样:

Public Sub RefreshData()
    Application.ScreenUpdating = False
    With ActiveSheet
        Sheet1.Range("my_data_table").ListObject.TableObject.Refresh
        DoEvents 'let refresh finish first
        .Activate 'switch back to original sheet
    End With
    Application.ScreenUpdating = True
End Sub

最新更新