将数据透视表源更改为不同的工作簿(基于单元格值)

时间:2016-05-25 14:28:29

标签: excel vba pivot datasource auto-update

我必须每周更新一个包含大约15个工作簿的数据库。

我遇到的解决方案是使用数据透视表(每个文件的一个数据透视表)排列数据,然后使用VBA代码将数据合并到另一个工作簿(ALREADY DONE)。

问题是我需要手动更改所有这些文件的数据源,也需要时间来打开每个文件,因为它们很重(10mb)。

最佳的是改变每个文件的来源,查看另一个文件夹的代码(4月第1,2,3,4周5月,第1周,第2周,第3周,第4周......)

示例文件1

来源4月第3周:'C:\ ACreative \ April \ 3 [Coop.XLS] Sheet1'!$ A $ 6:$ BJ $ 30000

来源4月第4周:'C:\ ACreative \ April \ 4 [Coop.XLS] Sheet1'!$ A $ 6:$ BJ $ 30000

来源5月第1周:'C:\ ACreative \ May \ 1 [Coop.XLS] Sheet1'!$ A $ 6:$ BJ $ 30000

来源5月第2周:'C:\ ACreative \ May \ 2 [Coop.XLS] Sheet1'!$ A $ 6:$ BJ $ 30000

示例文件2

来源4月第3周:'C:\ ACreative \ April \ 3 [File2.XLS] Sheet1'!$ A $ 6:$ BJ $ 30000

来源4月第4周:'C:\ ACreative \ April \ 4 [File2.XLS] Sheet1'!$ A $ 6:$ BJ $ 30000

来源5月第1周:'C:\ ACreative \ May \ 1 [File2.XLS] Sheet1'!$ A $ 6:$ BJ $ 30000

来源5月第2周:'C:\ ACreative \ May \ 2 [File2.XLS] Sheet1'!$ A $ 6:$ BJ $ 30000

我认为解决方案是在单元格上写入(\ April \ 3 \; \ May \ 1),并根据“路径+单元格值”更新源代码,但我对另一个进行更新。

谢谢!!!

1 个答案:

答案 0 :(得分:0)

Macro Recorder是你的朋友。

只要您知道不同的DataSource都将滑入有问题的数据透视表中,请尝试使用以下VBA代码段在相同工作簿或其他工作簿范围之间快速切换。

{{1}}

注意我已经在本地工作簿中使用了一些命名区域来帮助宏。我上传了some sample files here而不是上传截图,因此您可以自己逛一逛,而不是试图在论坛帖子上解释静态图片。

希望它有所帮助!