VBA将测量添加到PowerPivot数据透视表

时间:2016-10-19 18:01:17

标签: excel vba excel-vba excel-2013

更新:我认为我找到了答案,但我无法在Excel 2013中看到是否有办法执行此操作。

https://msdn.microsoft.com/en-us/library/office/mt574976.aspx

该链接包含有关ModelMeasures.Add方法的文档,但目前我无法找到真正的好例子。如果有人在Excel 2013中有一个很好的示例,可以使用VBA向模型添加度量,请分享作为答案。

最佳示例我可以找到,但无法在Excel 2013中完成: https://social.msdn.microsoft.com/Forums/en-US/c7d5f69d-b8e3-4823-bbde-61253b64b80e/vba-powerpivot-object-model-adding-measures-with-modelmeasuresadd?forum=isvvba

原始帖子:

我正在尝试使用VBA自动将计算字段添加到powerpivot数据透视表。我对VBA没有经验。

当我使用下面的公式手动添加计算字段时,我可以看到添加了计算字段。这个VBA代码有什么问题?

这是我的代码:

Sub Macro5()
Dim PvtTbl As PivotTable
Set PvtTbl = Worksheets("Sheet4").PivotTables("PivotTable6")

'Table1 is part of the PowerPivot data model and I have created a pivot table from Table1
PvtTbl.CalculatedFields.Add "column", "=IF(HASONEVALUE(Table1[TEXT1]), VALUES(Table1[TEXT1]), BLANK())"

'Selecting the pivot table and adding the new calculated field
    Range("D7").Select
    ActiveSheet.PivotTables("PivotTable6").AddDataField ActiveSheet.PivotTables( _
        "PivotTable6").CubeFields("[Measures].[column]")
End Sub

我得到的错误:

运行时错误' 1004':应用程序定义或对象定义的错误

1 个答案:

答案 0 :(得分:1)

将其组合在一起即可从Excel工作表中加载(将需要更改范围等) 将覆盖现有度量的公式,以便可以遍历而不必处理错误消息(除了最后一个错误处理程序之外)。

最好的部分是可以不按顺序加载度量,以便可以加载依赖于另一个度量的度量。

<div class="row">
  <div class="col-md-6">
    <div class="pull-left">
      <label>Reporting period</label>
      <label for="favcity">
        <select id="favcity" name="select" >
          <option *ngFor="let year of years" [value]="year.years">
            {{year.years}}
          </option>
        </select>
      </label>
    </div>
  </div>
  <div class="col-md-6 ">
    <div class="pull-right">
      <label>Type of event</label>
      <label for="favcity">
        <select id="favcity" name="select"  >
          <option *ngFor="let typeEvent of typeEvents" [value]="typeEvent.name">
            {{typeEvent.name}}
          </option>
        </select>
     </label>
    </div>
  </div>
</div>