【问题标题】:Excel VBA - Using a variable to set the pivot table datafield functionExcel VBA - 使用变量设置数据透视表数据字段函数
【发布时间】:2016-08-30 18:30:21
【问题描述】:

我正在尝试使用 VBA 创建的数据透视表创建自定义报告,而我遇到的问题之一是将数据字段设置为基于用户的需求。

例如: 我有一个下拉菜单,显示每种类型的 PivotFields 函数(sum、min max 等),并根据用户选择的内容存储为字符串变量。

当我运行我的代码时:

Dim valueXL As String
valueXL = xlSum

With Worksheets(sheetPivotName).PivotTables(sheetPivotName).PivotFields(valueType)
.Function = valueXL
.NumberFormat = "$#,##0.00"
End With

但是,如果我将 .Function = valueXL 替换为 .Function = xlSum 则会出现错误。

有没有办法动态设置 .Function 的值?

谢谢

【问题讨论】:

    标签: vba excel dynamic pivot-table


    【解决方案1】:

    由于 xlSum 是一个数字 Excel 常量,您应该将 valueXL 更改为整数

    Dim valueXL As Integer
    valueXL = xlSum
    

    或者直接在你的代码中使用常量

    With Worksheets(sheetPivotName).PivotTables(sheetPivotName).PivotFields(valueType)
      .Function = xlSum
      .NumberFormat = "$#,##0.00"
    End With
    

    【讨论】:

    • 或使用CInt(valueXL)...仍然没有意义将valueXL定义为字符串:/
    • 感谢您,我不知道 xlSum 并且这些值被视为整数而不是字符串!
    【解决方案2】:

    我找到了一个可能的解决方案,即使用 Evaluate 功能,但是我想知道是否还有其他解决方案?

    如果不是,我可以选择这个作为答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 2012-06-19
      • 2012-12-17
      • 1970-01-01
      • 2011-09-07
      • 2016-04-12
      • 1970-01-01
      相关资源
      最近更新 更多