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