使用VBA连接具有2个不同数据源的两个数据透视表

时间:2018-10-25 11:39:50

标签: excel vba

我有两个不同来源的两个观点。两个源都有一个公共列“位置”。我创建了两个切片器,并且工作正常。我现在想要的是,不使用两个切片器,而是仅使用一个。当我在切片器中为PivotTable1选择一个位置时,它也应该在PivotTable2中实现选择。

我写了下面的代码:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    Dim sc As SlicerCache
    Dim si As SlicerItem
    Dim sValue As String
    On Error Resume Next
    Application.Volatile
    Set sc = ThisWorkbook.SlicerCaches("Slicer_Location")
    For Each si In oSc.SlicerItems
        If si.Selected Then
            sValue = si.Name
        End If
    Next
    MsgBox (sValue)
    Set sc = ThisWorkbook.SlicerCaches("Slicer_Location1")
    For Each si In sc.SlicerItems
        If si.Caption = sValue Then
            si.Selected = True
        Else
            si.Selected = False
        End If
    Next
End Sub

msgbox将正确的值显示为在“ Slicer_Location”切片器中选择的切片器项目。 msgbox行中的代码发布后,它会显示“正在运行Slicer操作...”和“正在计算枢轴值...”,并刷新屏幕不少时间,而excel却被挂起。

我也尝试了以下选项,但没有任何结果:

Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("pivot7")
pt.PivotFields("Location").PivotFilters.Add2 Type:=xlCaptionEquals, Value1:=sValue

我没有找到问题所在,需要您的帮助。

0 个答案:

没有答案