在Excel 2013中,我使用以下VBA sub来静默刷新使用power query加载的表:
Public Sub RefreshData()
Sheet1.Range("my_data_table").ListObject.TableObject.Refresh
End Sub
迁移到Excel 2016后,相同的代码具有不同的行为,这意味着在加载数据后,它会将视图更改为新数据表。
有没有办法让旧行为恢复?
编辑: 我制作了一个更准确描述问题的模型,可以下载:here
答案 0 :(得分:0)
可能您只能关闭屏幕更新并切换回原始工作表。
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