Excel VBA 新手在这里。我只需要一个宏来刷新我正在查看的单张工作表上的查询。我已经有了刷新宏,但我总是必须指定要刷新的工作表名称。是否可以在我正在查看的任何工作表上运行宏?这是当前状态下的宏:
Sub Refresh_Query()
Sheets("Sheet1").Select
Range("B6").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub
您要使用ActiveSheet.Name
,例如:
Sub Refresh_Query()
Sheets(ActiveSheet.Name).Select
Range("B6").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub
这应该有效:
Sub Refresh_Query()
ActiveSheet.QueryTables(1).Refresh BackgroundQuery:=False
End Sub
OP不明确:文本要求刷新活动工作表上的所有查询表,但示例代码仅刷新包含单元格的一个查询表B3
要仅刷新一个查询表,请使用
Sub RefreshOneQuery()
Dim qt As QueryTable
On Error Resume Next ' in case there is no qt containing cell B6
Set qt = Range("B6").QueryTable
On Error GoTo 0
If Not qt Is Nothing Then
qt.Refresh BackgroundQuery:=False
End If
End Sub
要刷新工作表上的所有查询表,请使用
Sub RefreshAllQueries()
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Refresh BackgroundQuery:=False
Next
End Sub