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