如何使用VBA从Excel数据集自动创建筛选列表?

时间:2012-07-06 14:39:36

标签: excel vba excel-vba excel-2007

我遇到了Excel 2007无法找到解决方案的问题。我认为必须使用VBA才能做到这一点,我对此非常缺乏经验。 我在Excel中有一个数据集(大约1k行),有10列。在其他选项卡/工作表中,我现在要显示按一列过滤的数据(国家/地区代码)。它可以通过自动过滤来完成,但它应该更像报告,因此它必须看起来很好。

让我举个例子:

DATASET

列|第2栏|第3栏

汉斯| GER | 16

彼得|美国| 29

玛丽亚| GER | 30

达里安|美国| 15

丽莎| GER | 40

在另一个标签/工作表中,我现在想要一个基于此数据集的自动更新,格式化和过滤的列表,例如:

REPORT

德国

汉斯| 16

玛丽亚| 30

丽莎| 40

US

彼得| 29

达里安| 15

我希望你理解我的意思。如果我在数据集表中添加新的数据行,我希望报表能够自动更新(因此我不能只是自动过滤列表彼此之下,因为所需的行数取决于数据点)。我认为这应该很容易使用VBA宏,但我不知道如何做到这一点......非常感谢帮助!

先谢谢!

*

3 个答案:

答案 0 :(得分:3)

您是否尝试过将数据透视表与动态命名范围结合使用?

鉴于上面的数据集是在工作簿的Sheet1中设置的,从A1开始,带有列名。请参阅以下解决方案。

1)为数据集输入动态命名范围,如下所示。

enter image description here

这将确保添加到结尾或插入数据集中间的任何新数据都会通过数据透视表刷新自动捕获和更新。

2)将您的数据透视表基于命名范围。

enter image description here

3)最后,像下面一样设置数据透视表。

enter image description here

然后,您可以按照自己的喜好格式化数据透视表。

答案 1 :(得分:0)

数据透视表可以执行您要查找的分组类型。使用您提供的数据,这是我从数据透视表中获得的数据:

enter image description here

答案 2 :(得分:0)

我建议你看一下数据透视表。它们可能有点复杂但是一旦你弄清楚它们是如何工作的,它们就非常有用。