在Excel中使用单元格作为参数在SQL中创build参数化查询

所以在MS Excel中,我从SQL Server中的数据库中导入了一个表。 我想创build一个参数化的查询,你有两个单元格。 说这两个单元格是G1和G2。 G1采用参数/类别,G2从参数/类别中获取一个值,并查询您导入的表(本质上是一个从单元格input中dynamic的WHERE子句)。 有人可以告诉我如何做到这一点?

编辑:基于聊天会话,我们发现第一个参数是要search的列,第二个参数是要过滤的值。


你可以通过过滤你导入的表来做你想做的事情。

使用下面的代码作为你的模板。 修改它以引用正确的工作表和范围。

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 

有关如何使用可见行的示例,请参阅有效的方法来删除整行。