我有一个受保护的excel工作表,其中包含一个要用VBA刷新的超级查询。我的代码应该取消工作表保护,刷新查询,然后重新保护工作表。基本脚本非常简单(我已经尝试过使用特定的命名查询,但得到了相同的结果)
Sub refresh()
Worksheets("Sheet2").unprotect
ActiveWorkbook.RefreshAll
Worksheets("Sheet2").protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
这会导致一条消息,提示我正在尝试更新一个受保护的单元格。但是,如果我运行以下命令:
Sub refresh()
Worksheets("Sheet2").unprotect
ActiveWorkbook.RefreshAll
End Sub
它可以工作,但是很明显刷新完成后不能重新保护单元格。我怎样才能让脚本在sub结束时重新保护?
1条答案
按热度按时间mbzjlibv1#
问题是宏在查询完成之前继续运行
如果右键单击查询,转到属性,取消选中[ ] enable background refresh,会发生什么情况?