7

エクセルVBA初心者です。表示している 1 つのシートにあるクエリを更新するマクロが必要なだけです。既に更新マクロを持っていますが、常に更新するシート名を指定する必要があります。表示しているシートでマクロを実行することはできますか? 現在の状態のマクロは次のとおりです。

Sub Refresh_Query()
Sheets("Sheet1").Select
Range("B6").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub
4

3 に答える 3

9

次のように使用しますActiveSheet.Name

Sub Refresh_Query()
    Sheets(ActiveSheet.Name).Select
    Range("B6").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub
于 2013-01-16T20:48:34.550 に答える
2

これはうまくいくはずです:

Sub Refresh_Query()
    ActiveSheet.QueryTables(1).Refresh BackgroundQuery:=False
End Sub
于 2013-01-16T20:48:22.133 に答える
1

OP があいまいです: テキストはアクティブなシート上のすべてのクエリ テーブルを更新するように求めますが、サンプル コードはセルを含む 1 つのクエリ テーブルのみを更新しますB3

1 つのクエリ テーブルのみを更新するには、次を使用します。

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
于 2013-01-17T05:38:26.203 に答える