Excel VBA使用选定的工作表

Excel VBA新手在这里。 我只需要一个macros,它将刷新我正在查看的单张纸上的查询。 我已经有刷新macros,但我总是必须指定我想要刷新的工作表名称。 是否有可能在我正在查看的任何表单上运行macros? 以下是当前状态下的macros:

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