2017-05-24 78 views
1

我正在开发一个用户窗体,它打开一个excel文件,导入给定数量的行并粘贴数据透视表中的行。不幸的是,我不知道如何刷新数据透视表来合并这些新行和旧行。如何刷新数据透视表才能被vba考虑到?

如果你们中的任何一个人能够帮助我,那就太好了,因为我只有基本的知识并且想要实现这个项目。

+1

Check out https://stackoverflow.com/questions/70947/how-can-i-refresh-all-the-pivot-tables-in-my-excel-workbook-with-a-macro –

回答

0

您不能将行粘贴(追加)到数据透视表。如果您希望它们位于数据透视表中,则应将原始数据添加到数据透视表引用的位置。

重要的是你的数据透视表的设置方式。您需要使用像“A:G”而不是“A1:G800”的范围来确保稍后将添加的任何行将包含在数据透视表中。

如果像这样设置数据透视表,那么在刷新电子表格后添加原始数据后,数据透视表将被更新,并且新添加的数据将包含在其中。

在下面的链接,我有一些截图如何建立一个数据透视表用于此目的:

Count if for excel VBA, and printing results in another range

附:正如@Rory所提到的,使用数据透视表的整个列是不高效的。建议使用“命名范围”或“表格”。

+0

使用整个列对于数据透视表来源数据效率低下,应该避免。改为使用动态命名范围或表。 – Rory

+0

@Rory一步一步的教学呢?你不会从小学毕业获得大学学位。我同意你的看法,效率不高,但每天我的一个教训就是我的策略。我在答案的最后列出了你的观点。谢谢。 – Masoud

+0

除了效率低下之外,它还会引入(空白)条目,然后您必须稍后过滤掉。当您添加新项目时,这可能会导致问题,除非您非常小心,所有先前未见过的项目也会被滤除。表格或动态范围绝对是首选方法。 – CLR