2

MS Excel では、SQL Server のデータベースからテーブルをインポートしました。2 つのセルがあるパラメーター化されたクエリを作成したいと考えています。これらの 2 つのセルが G1 と G2 であるとします。G1 はパラメータ/カテゴリを取得し、G2 はパラメータ/カテゴリから値を取得して、インポートしたテーブルをクエリします (基本的に、セル入力から動的な WHERE 句)。誰かがこれを行う方法を教えてもらえますか?

4

1 に答える 1

1

編集:チャット セッションに基づいて、最初のパラメーターが検索対象の列であり、2 番目のパラメーターがフィルター処理する値であることを発見しました。


インポートしたテーブルをフィルタリングすることで、必要なことを行うことができます。

以下のコードをテンプレートとして使用してください。正しいワークシートと範囲を参照するように変更します。

Sub FilterByParameter()
    Dim wb As Workbook
    Dim dataSheet As Worksheet
    Dim parameterSheet As Worksheet
    Dim rng As Range
    Dim filterColumn As Long
    Dim filterValue As String

    Set wb = ThisWorkbook
    ' sheet that contains your table
    Set dataSheet = wb.Sheets("Sheet1")
    ' sheet that contains your parameters
    Set parameterSheet = wb.Sheets("Sheet2")
    ' range that contains your table, hard-coded here
    ' but can easily be set dynamically
    Set rng = dataSheet.Range("A1:F78")

    ' get the column you are searching
    filterColumn = parameterSheet.Range("G1").Value

    ' get the value you want to filter on
    filterValue = parameterSheet.Range("G2").Value

    ' turn off autofilters if set
    dataSheet.AutoFilterMode = False

    ' autofilter using your column and filter
    rng.AutoFilter field:=filterColumn, Criteria1:=filterValue

    ' now you can do whatever you want to with the rows
    ' that remain after the autofilter was applied
End Sub

表示されている行の使用方法の例については、行全体を効率的に削除する方法を参照してください。

于 2013-07-02T20:35:38.990 に答える