【问题标题】:Pivottable.pivotfields does not detect any fields in case of external datasourcePivottable.pivotfields 在外部数据源的情况下不检测任何字段
【发布时间】:2019-10-12 05:44:36
【问题描述】:

我正在使用连接到外部数据源的枢轴。当我显示字段列表时,它会在顶部显示数据源名称“Source”。我正在尝试使用 PivotTable.PivotFields 遍历字段。它根本没有进入循环。 期望的行为:它应该进入循环并且应该将字段名称附加到字符串。

For Each pvtField As PivotField In pvttable.PivotFields
mRetVal = mRetVal & pvtField.Name & "-" & pvtField.SourceName & "-" & pvtField.SourceCaption & ","
Next

【问题讨论】:

  • 您是如何连接到外部数据源的?只要您在字段列表(数据源名称下方)中也没有看到某些字段名称,就不能将它们称为PivotField
  • 谢谢阿斯格。我可以在列表中看到字段名称。所有字段名称似乎都是 Source 的子项(如上所述)。我尝试遍历名称,但它从未进入循环。
  • 我还要在这里提一提。我尝试创建另一个连接到同一文档中的表的枢轴。在这种情况下,循环工作得很好。
  • 我开始认为没有人对这个话题感兴趣。这个问题非常活跃,像任何事情一样困扰着我。请帮忙。

标签: c# excel vba vb.net


【解决方案1】:

如果您想用 VBA 编写它,这里有一些帮助。
在 VBA 中,您通常必须像这样分隔变量声明:

Dim pvtField As PivotField
For Each pvtField In pvttable.PivotFields
    mRetVal = mRetVal & pvtField.Name & "-" & pvtField.SourceName & "-" & pvtField.SourceCaption & ","
Next pvtField 

如果您的数据透视表基于外部源 (OLAP),那么您还可以循环访问具有一些不同属性的 CubeFields

Dim pvtCubeField as CubeField
For Each pvtCubeField In pvttable.CubeFields
    mRetVal = mRetVal & pvtCubeField.Name & "-" & pvtCubeField.Value & "-" & pvtCubeField.Caption & ","
Next pvtCubeField

由于来自 OLAP 源的 CubeFields 和来自数据透视表的 PivotFields 已链接,您可以再次选择 PivotFields

Dim pvtCubeField as CubeField, pvtField As PivotField
For Each pvtCubeField In pvttable.CubeFields
    For Each pvtField In pvtCubeField.PivotFields
        mRetVal = mRetVal & pvtField.Name & "-" & pvtField.SourceName & "-" & pvtField.SourceCaption & ","
    Next pvtField
Next pvtCubeField

【讨论】:

  • 将尝试使用 cubefield 方法并通知您。谢谢阿斯格。
  • 你可以通过CubeField.PivotField得到你想要的信息,所以我也添加了。
  • 如果我的回答有帮助,请帮我一个忙并标记它下面的复选框(原因描述为here
  • 你能不能也看看这个...? stackoverflow.com/questions/56940059/…
猜你喜欢
  • 1970-01-01
  • 2013-02-08
  • 2014-11-06
  • 1970-01-01
  • 2021-09-18
  • 2017-01-03
  • 2013-12-06
  • 2017-11-09
  • 1970-01-01
相关资源
最近更新 更多