基于数据透视表中的字段通过张环

在Sheet1我有一个数据透视表,列标签的名称等于不同的表名。

我需要通过不同的实际表(该名称是列标签)循环,并检查透视表所有字段(行标签)是各自的表列B,如果不是我需要把它复制到相应的工作表。

什么情况是,数据透视表是从外部电源供电,而单页创建甚至在数据透视表数据源存在,换句话说,每一个数据透视表更新时,我需要检查是否有新的条目是在张失踪,使他们得到更新。

我希望我是清楚的。 提前致谢。


路易丝

--------------解决方案-------------

OK已经通过你的数据下面的代码看起来将填充与金额从数据透视表数据的其他工作表...

显式的选项

子CheckPivotData()
昏暗varPCol为Variant,varCell为Variant
昏暗varPRow为Variant,varGRow为Variant,lngRow只要
对于每个varPCol在Me.PivotTables(“MyPivot”)。PivotFields(“Company_Property”)。PivotItems
对于每个varGRow在Me.PivotTables(“MyPivot”)。PivotFields(“P&L集团”)。PivotItems
如果不表(varPCol.Value).Range(“B:B”)。找到(varGRow,xlValues​​)是没有那么
lngRow =表(varPCol.Value).Range(“B:B”)。找到(varGRow,xlValues​​).Row
对于每个varPRow在相交(varGRow.DataRange.EntireRow,Me.PivotTables(“MyPivot”)。PivotFields(“类别”)。DataRange)
如果表(varPCol.Value).Range(“B:B”)。找到(varPRow,xlValues​​)是没有那么
表(varPCol.Value).Rows(lngRow + 1&“:”&lngRow + 1).Insert换档:= xlDown,CopyOrigin:= xlFormatFromLeftOrAbove
张(varPCol.Value).Range(“B”&lngRow + 1)。价值= varPRow.Value
表(varPCol.Value).Range(“C”和lngRow + 1).Formula = _
“= IFERROR(GETPIVOTDATA(”“量”“,”“Me.Name&”'!“&Me.PivotTables(”MyPivot“)。DataLabelRange.Address&_
“,”“Company_Property”“,”“”&varPCol.Value&“”“,”“盈亏组”“,”“”&varGRow.Name&“”“,”“类别”,“”,“”&varPRow .value的&“”“),0)”
lngRow = lngRow + 1
其他
lngRow =表(varPCol.Value).Range(“B:B”)。找到(varPRow,xlValues​​).Row
表(varPCol.Value).Range(“C”和lngRow).Formula = _
“= IFERROR(GETPIVOTDATA(”“量”“,”“Me.Name&”'!“&Me.PivotTables(”MyPivot“)。DataLabelRange.Address&_
“,”“Company_Property”“,”“”&varPCol.Value&“”“,”“盈亏组”“,”“”&varGRow.Name&“”“,”“类别”,“”,“”&varPRow .value的&“”“),0)”
万一
下一个
万一
下一个
下一个
结束小组


Rik_UK请注明的回答你的问题的“答案”或投票,如果答复是有帮助的信息或消息。

这是可能的代码来执行,但它会是非常有益的,如果你能提供有关数据透视表的详细信息...

你知道透视表的名字吗?

创建的行标签是一列? - 透视表结构的样品会澄清这一点...

如果行标签粘贴为B列到目标表将这项事业在表的任何其他数据的proble?


Rik_UK请注明的回答你的问题的“答案”或投票,如果答复是有帮助的信息或消息。

瑞克

非常感谢的及时答复

·这是可能的代码来执行,但它会是非常有益的,如果你能提供有关数据透视表的详细信息...

你知道透视表的名字吗? 是的,“MyPivot”

创建的行标签是一列? - 是的。 考虑

行标签 Sheet2中 表Sheet 3 Sheet4 Sheet4
LABEL1 LABEL2(来查找Sh​​eetX) LABEL3 Label4
一个
C
ð

如果行标签粘贴为B列到目标表将这个导致问题在表任何其他数据?

实际上该薄片具有在其中行标签将被抬起,这样一个新的整行的插入可以在任何行发生,移下来的命名范围(“MyRange”)。


路易丝

确定-因此使用MyPivot您提供此代码将检查每一个在枢轴的一部分命名表和检查,看看是否Label2的在各自的表列B中存在的例子。 我已经加粗的代码是可以互换到您的数据透视表字段的实际值的部分。

这个代码添加到您的数据透视表右键单击该选项卡,选择“视图代码”,然后复制并粘贴下面的代码到右侧窗格中...
修改粗体项目,你应该准备好去...

显式的选项

子CheckPivotData()
昏暗varPCol为Variant,varPRow为Variant,varCell为Variant,lngRow只要
对于每个varPCol在Me.PivotTables(“MyPivot”).PivotFields(“ ”).PivotItems
lngRow = 1
对于每个varPRow在Me.PivotTables(“MyPivot”).PivotFields(“Label2 ”).PivotItems
如果表(varPCol.Value).Range(“B:B”).Find(varPRow,xlValues)是没有那么
表(varPCol.Value).Rows(lngRow + 1&“:”&lngRow + 1).Insert换档:= xlDown,CopyOrigin:= xlFormatFromLeftOrAbove
(varPCol.Value).Range(“B”&lngRow + 1)。价值= varPRow.Name
lngRow = lngRow + 1
其他
lngRow =表(varPCol.Value).Range(“B:B”).Find(varPRow,xlValues).Row
万一
下一个
下一个
结束小组

让我知道你是怎么得到:)


Rik_UK请注明的回答你的问题的“答案”或投票,如果答复是有帮助的信息或消息。
这更容易预期,非常感谢里克....


路易丝

里克;

我收到一条错误信息,在这里

表(varPCol.Value).Range(“B:B”)。找到(varPRow,xlValues​​)

我必须设置变量?


路易丝

金额的总和 Company_Property
盈亏集团 类别 AA BB CC
费用 房主保险 100
利息已付 100
车辆费用 100
工资支付 180
收入 进入到/从官员 132
汽车及旅游 100
银行费用 1888年
业务发展和公司进出口。 100
咨询及通讯。 100
信用卡Pmnts
非损益 HOA 180
累计 480 2200 300
表AA
AA
收入
进入到/从官员 $ 0个
广告 $ 0个
员工奖 $ 0个
总收入 $ 0个
花费
房主保险 $ 0个
工资支付 $ 0个
总支出 $ 0个

我觉得我没有完全解释该项目。 我需要环通的“Company_Property”领域,在各自的表中找到“类别”行,如果没有找到我想要将其插入到相应的区域收入,费用等。

谢谢


路易丝

一个可能的原因此行示数可能是因为工作表名称不完全匹配的Company_Property名称,或表不存在。 如果没有,那么它会如果你能详细的错误信息是有帮助...


Rik_UK请注明的回答你的问题的“答案”或投票,如果答复是有帮助的信息或消息。

OK已经通过你的数据下面的代码看起来将填充与金额从数据透视表数据的其他工作表...

显式的选项

子CheckPivotData()
昏暗varPCol为Variant,varCell为Variant
昏暗varPRow为Variant,varGRow为Variant,lngRow只要
对于每个varPCol在Me.PivotTables(“MyPivot”)。PivotFields(“Company_Property”)。PivotItems
对于每个varGRow在Me.PivotTables(“MyPivot”)。PivotFields(“P&L集团”)。PivotItems
如果不表(varPCol.Value).Range(“B:B”)。找到(varGRow,xlValues​​)是没有那么
lngRow =表(varPCol.Value).Range(“B:B”)。找到(varGRow,xlValues​​).Row
对于每个varPRow在相交(varGRow.DataRange.EntireRow,Me.PivotTables(“MyPivot”)。PivotFields(“类别”)。DataRange)
如果表(varPCol.Value).Range(“B:B”)。找到(varPRow,xlValues​​)是没有那么
表(varPCol.Value).Rows(lngRow + 1&“:”&lngRow + 1).Insert换档:= xlDown,CopyOrigin:= xlFormatFromLeftOrAbove
张(varPCol.Value).Range(“B”&lngRow + 1)。价值= varPRow.Value
表(varPCol.Value).Range(“C”和lngRow + 1).Formula = _
“= IFERROR(GETPIVOTDATA(”“量”“,”“Me.Name&”'!“&Me.PivotTables(”MyPivot“)。DataLabelRange.Address&_
“,”“Company_Property”“,”“”&varPCol.Value&“”“,”“盈亏组”“,”“”&varGRow.Name&“”“,”“类别”,“”,“”&varPRow .value的&“”“),0)”
lngRow = lngRow + 1
其他
lngRow =表(varPCol.Value).Range(“B:B”)。找到(varPRow,xlValues​​).Row
表(varPCol.Value).Range(“C”和lngRow).Formula = _
“= IFERROR(GETPIVOTDATA(”“量”“,”“Me.Name&”'!“&Me.PivotTables(”MyPivot“)。DataLabelRange.Address&_
“,”“Company_Property”“,”“”&varPCol.Value&“”“,”“盈亏组”“,”“”&varGRow.Name&“”“,”“类别”,“”,“”&varPRow .value的&“”“),0)”
万一
下一个
万一
下一个
下一个
结束小组


Rik_UK请注明的回答你的问题的“答案”或投票,如果答复是有帮助的信息或消息。

里克,

我很抱歉,你是正确的,你是正确的,因为一开始,片失踪了。 再次感谢。

代码工作就像一个魅力,速度非常快。

谢谢,

路易斯·摹


路易丝

对于反馈非常感谢,很高兴您的查询已得到解决。


Rik_UK请注明的回答你的问题的“答案”或投票,如果答复是有帮助的信息或消息。

分类:办公室 时间:2012-01-01 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.444 (s). 10 q(s)