【问题标题】:cell value used for multiple pivot tables on a worksheet用于工作表上多个数据透视表的单元格值
【发布时间】:2014-01-24 00:18:59
【问题描述】:

我有一个在工作表上运行的仪表板。仪表板由来自不同数据源的多个数据透视表组成。

我希望能够从下拉列表中选择经理姓名来构建此报告并使其正常工作。选择经理名称的单元格是“vp_email_rm_rpt”

我为一个数据透视表工作 - 但是我有 6 个。

我将如何更改它以使其循环到下一个具有不同名称的数据透视表并且可能具有不同的数据透视字段

我很接近 - 但我一直遇到错误。

    Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

'
    Dim rng As Range

    Set rng = Me.Range("rm_email_rm_rpt")
    If Not Application.Intersect(Target, rng) Is Nothing Then

 ' change revenue numbers
        With Sheets("RM_Rpt").PivotTables("RM_Account_List").PivotFields("LVL6_TERRITORY_EMAIL")
            .ClearAllFilters
            If Len(rng.Value) > 0 Then .CurrentPage = rng.Value
        End If

【问题讨论】:

  • 您收到什么错误?错误发生在哪一行?
  • 它在上面工作得很好,当我开始尝试让它改变另一个数据透视表时(不止一个)。在上述情况下,我有一个名为“RM_Account_List”的数据透视表 - 我想我不知道如何也包括“New_Pivot_tameble_Name_1”...

标签: vba excel


【解决方案1】:

您的代码只需要为每个数据透视表添加额外的部分。理论上,您可以遍历所有内容,而不是专门识别每个内容,但为简单起见,请尝试以下操作。您只需要调整数据透视表名称和字段名称。如果您需要更多,请继续添加。

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.ScreenUpdating = False

    Dim rng As Range

    Set rng = Me.Range("rm_email_rm_rpt")
    If Not Application.Intersect(Target, rng) Is Nothing Then

        ' change revenue numbers
        With Sheets("RM_Rpt").PivotTables("RM_Account_List").PivotFields("LVL6_TERRITORY_EMAIL")
            .ClearAllFilters
            If Len(rng.Value) > 0 Then .CurrentPage = rng.Value
        End With '<this line changes
        With Sheets("RM_Rpt").PivotTables("Pivot Table 2").PivotFields("LVL6_TERRITORY_EMAIL")
            .ClearAllFilters
            If Len(rng.Value) > 0 Then .CurrentPage = rng.Value
        End With '< This line too
    End If
End Sub

编辑以回复评论

刚刚意识到错误。您正在开始一个With 语句,然后用End If 而不是End With 关闭它。我已经更新了上面的代码。试试看吧。

再次编辑以回复评论

原来我忘记了End If

【讨论】:

  • 我得到“如果没有阻塞则结束”......我之前尝试过同样的方法。我不知道“阻止如果”是什么意思,也无法弄清楚我做错了什么。
  • 感谢您的回复 - 我有同样的问题。
猜你喜欢
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 2019-03-29
相关资源
最近更新 更多