0

这是一个困扰我几天的问题,也是我一直在努力解决的问题。不幸的是,我对这方面的工作非常陌生,并且没有很多资源试图解决这个问题,所以如果我不清楚或者您有任何问题,请发表评论。

我要解决的问题是:

在从 SQL Server 获取外部数据并在电子表格中有一个表之后,假设它被称为 Products,并具有 productid(A 列)、productname(B 列)、supplierid(C 列)和 categoryname(D 列)的列. 有没有办法定义一个单元格,比如说你使用的 E1 可以使用 VBA 创建一个动态查询。在这个动态查询中,您将在查询表的位置输入 categoryname 的一些值,然后给您结果?

4

2 回答 2

2

可以在不使用任何 VBA 的情况下执行动态查询。

将您的表基于“来自 Microsoft Query”(在“数据”选项卡上的“获取外部数据”组下)。使用查询向导构建您的查询,选择感兴趣的表列。在“查询向导 - 过滤数据”选项卡上,您通常会说特定列必须具有特定值,而不是特定值,只使用问号(对于需要用于过滤的任何和所有列) . 当您将数据返回 Excel 时,系统会提示您为每个 ? 你用过。在此阶段只需单击确定。

当 Excel 的“导入数据”对话框出现时,单击“属性...”。在定义选项卡上单击标有“参数...”的按钮。对于每个参数,选择“从以下单元格获取值”和“当单元格值更改时自动刷新”。单击红色箭头按钮(以选择一个单元格)并单击每个参数将从其中获取其值的单元格。

在每个单元格旁边都有一个标签是个好主意,并且可能是数据输入单元格的特殊格式。结果表可以与参数输入单元格位于同一工作表上,当您在输入单元格中输入值时,将运行新查询并显示结果。

于 2017-03-30T03:29:36.560 回答
-1

这是一个可能有帮助的链接。

它进入使用VBA进行过滤。

前段时间在寻找类似的东西时发现了它,希望对您有所帮助。

于 2013-07-01T15:07:55.340 回答