Excel根据用户select显示数据

Excel 2007:我从Access表中获取数据,Excel工作表称为“数据”。 我的Excel报表单元格通过链接到这些数据单元格(= Data!A1)来填充,并且一些报表单元格具有简单的代码。 但是我的问题是这样的。 我的报告需要指定一个logging。 例如:数据logging1:姓名=乔,出生= 7/29/62,国家=美国:logging2:姓名=山姆,出生= 4/13/74,国家=中国…我们如何控制报告显示到具体的logging? 如果我添加一个DropDown或ListBox,我们如何只做报告中名称select显示的logging。 有没有办法将代码放在列表框的后面,或者我应该放弃列表并创buildmacros,那么用户select要显示在报表上的数据的最佳方式是什么? build议请…

有两种方法我会使用。

当您在Excel中embedded查询对象(即,我假设您如何从Access中获取数据)时,您可以在小查询编辑器工具中编辑该查询。 您可以在此工具中为该查询添加条件 – 有一个filter图标,您可以select名称列,然后在下面的框中键入“Sam”,这将生成一个SQL语句,现在包含“Where Name =同样'“在最后。

但是,这对报告没有帮助,因为我们很可能希望名称是从Excel工作表本身传入的参数。 如果在标准框中,您键入“[input名称]”而不是“山姆”,方括号告诉查询工具,这是一个用户提供的参数。 当你从工具中运行查询时,你会得到一个popup框,每次询问你的名字。

现在,当您退出查询工具并返回到Excel时,可以编辑该embedded式查询对象的查询参数。 你所做的参数(name)就在那里,它可以是一个静态值,提示用户,或者取一个单元格的内容。 当单元格内容改变时,你甚至可以设置一个标志来刷新查询。

另一种方法稍微进一步,在一些VBA代码中操纵查询对象。 如果你需要做一些更重的举动,或者其他逻辑,例如,你不想把它写成电子表格公式。 一个简单的方法是在报表上放置一个button,并在该button的click事件上启动VBA代码。