我在ThisWorkbook中有这个。
Private Sub Workbook_Open()
Workbooks(ThisWorkbook.Name).RefreshAll
End Sub
我的所有查询都在更新。
我想将查询收集的一些信息移到另一个位置。我使用各种范围。
Sub Move_data()
Dim rng1, rng2, rng3 As Range
Set rng1 = Worksheets("Sheet1").Range("A3:F103")
rng1.Value = Worksheets("Sheet2").Range("A11:F111").Value
'etc for rng2 and rng3...
End Sub
问题是VBA开始更新查询,然后将“旧”数据移动到我的新位置。我想等到查询完成更新,然后自动移动数据。
我可以设置超时时间,但查询更新所需的时间非常多变(10秒到2分钟之间)。
此外,有没有办法加快查询更新。我试过这个:
Application.ScreenUpdating = False
但查询/表格/图表仍在闪烁/更新。我相信这是由于Power Query的属性,并假设我需要编写其他内容。
答案 0 :(得分:3)
您应该能够更改查询的属性,以便查询不会“在后台刷新” - 这就是在查询完全运行之前导致宏继续的原因。
现在,当您运行刷新宏时,执行将暂停,直到查询完成并且数据被拉入。
答案 1 :(得分:1)
假设您有一个从单元格A1开始的表。
此解决方案清除单元格A1的内容,并依靠刷新来重新填充它。
Do-While循环检查单元格A1中的内容并等待直到该单元格被填充。
为避免潜在的无限循环,在多次重复操作之后,使用计数器停止循环。
localhost:8000/example/