如何在Excel中使用切片器链接表和透视表?
嗯。我在Excel的一张工作表上有一个名为“ALL_INFO”的表,我在另一张工作表中创建了一个透视表,它的名称是“Pivot_INFO”。我想知道链接一个表和一个透视表的方法,透视表使用切片器过滤信息,并在两个表中反映出来 有人知道我怎么做吗如何在Excel中使用切片器链接表和透视表?,excel,pivot-table,slicers,excel-tables,Excel,Pivot Table,Slicers,Excel Tables,嗯。我在Excel的一张工作表上有一个名为“ALL_INFO”的表,我在另一张工作表中创建了一个透视表,它的名称是“Pivot_INFO”。我想知道链接一个表和一个透视表的方法,透视表使用切片器过滤信息,并在两个表中反映出来 有人知道我怎么做吗 先谢谢你 为数据透视表创建一个切片器,为数据透视表创建一个切片器。确保PT切片器可见,并且表切片器隐藏在用户看不到的地方。然后将此代码放入与您的PT所在的工作表对应的工作表模块中: Option Explicit Private Sub Workshe
先谢谢你 为数据透视表创建一个切片器,为数据透视表创建一个切片器。确保PT切片器可见,并且表切片器隐藏在用户看不到的地方。然后将此代码放入与您的PT所在的工作表对应的工作表模块中:
Option Explicit
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim sLastUndoStackItem As String
Dim sc_Pivot As SlicerCache
Dim sc_Table As SlicerCache
Dim si_Pivot As SlicerItem
Dim si_Table As SlicerItem
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
If Target.Name = "PivotTable1" Then '<= Change name as appropriate
On Error Resume Next 'in case the undo stack has been wiped or doesn't exist
sLastUndoStackItem = Application.CommandBars(14).FindControl(ID:=128).List(1) 'Standard Commandbar, undo stack
'The above line doesn't seem to work in my version of O365 so we'll use the English language backup
If sLastUndoStackItem = "" Then sLastUndoStackItem = Application.CommandBars("Standard").Controls("&Undo").List(1)
On Error GoTo 0
If sLastUndoStackItem = "Filter" Or sLastUndoStackItem = "Slicer Operation" Then
Set sc_Pivot = ActiveWorkbook.SlicerCaches("Slicer_Data") '<= Change name as appropriate
Set sc_Table = ActiveWorkbook.SlicerCaches("Slicer_Data1") '<= Change name as appropriate
sc_Table.ClearAllFilters
On Error Resume Next 'In case items differ between Table and PT
For Each si_Pivot In sc_Pivot.SlicerItems
With si_Pivot
sc_Table.SlicerItems(.Name).Selected = .Selected
End With
Next si_Pivot
End If
End If
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
选项显式
专用子工作表_数据透视表更新(ByVal目标作为数据透视表)
Dim sLastUndoStackItem作为字符串
将sc_枢轴调整为切片机
将sc_表的尺寸设置为切片机
将si_轴调整为SlicerItem
Dim si_表作为SlicerItem
应用
.ScreenUpdate=False
.Calculation=xlCalculationManual
以
如果Target.Name=“PivotTable1”,则“为数据透视表创建一个切片器,为数据透视表创建一个切片器。确保PT切片器可见,并且表切片器隐藏在用户看不到的地方。然后将此代码放入与您的PT所在的工作表对应的工作表模块中:
Option Explicit
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim sLastUndoStackItem As String
Dim sc_Pivot As SlicerCache
Dim sc_Table As SlicerCache
Dim si_Pivot As SlicerItem
Dim si_Table As SlicerItem
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
If Target.Name = "PivotTable1" Then '<= Change name as appropriate
On Error Resume Next 'in case the undo stack has been wiped or doesn't exist
sLastUndoStackItem = Application.CommandBars(14).FindControl(ID:=128).List(1) 'Standard Commandbar, undo stack
'The above line doesn't seem to work in my version of O365 so we'll use the English language backup
If sLastUndoStackItem = "" Then sLastUndoStackItem = Application.CommandBars("Standard").Controls("&Undo").List(1)
On Error GoTo 0
If sLastUndoStackItem = "Filter" Or sLastUndoStackItem = "Slicer Operation" Then
Set sc_Pivot = ActiveWorkbook.SlicerCaches("Slicer_Data") '<= Change name as appropriate
Set sc_Table = ActiveWorkbook.SlicerCaches("Slicer_Data1") '<= Change name as appropriate
sc_Table.ClearAllFilters
On Error Resume Next 'In case items differ between Table and PT
For Each si_Pivot In sc_Pivot.SlicerItems
With si_Pivot
sc_Table.SlicerItems(.Name).Selected = .Selected
End With
Next si_Pivot
End If
End If
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
选项显式
专用子工作表_数据透视表更新(ByVal目标作为数据透视表)
Dim sLastUndoStackItem作为字符串
将sc_枢轴调整为切片机
将sc_表的尺寸设置为切片机
将si_轴调整为SlicerItem
Dim si_表作为SlicerItem
应用
.ScreenUpdate=False
.Calculation=xlCalculationManual
以
如果Target.Name=“PivotTable1”,那么“你用谷歌搜索过这个吗?”?搜索过这个网站吗?我知道我已经看到了类似问题的答案…可能是…的副本(仅从这个网站上)。你用谷歌搜索过这个吗?搜索过这个网站吗?我知道我已经看到了类似问题的答案…可能是重复的…(仅从这个网站)。嗨,杰夫,你有关于这个的视频教程吗。因为我也有同样的问题。我正试图用一个切片器控制透视表和excel表,但无法做到。我尝试在宏中的透视表上粘贴代码。它仍然不能像上面所示那样工作。Hi-Jitesh。您的数据透视表的名称是什么?嗨,Jeff,基本上我已经将所有数据源转换为excel表(Ctr+T),所以如果我添加任何新值,它将自动添加到我的数据透视表中。现在的问题是,我创建了两个切片器,一个来自excel表,另一个来自此数据透视表。为了便于参考,我附上了示例文件(Example.xlsx),您可以找到“DataSource_选项卡”和“Pivot_选项卡”。如果我在一个切片器中进行更改,则不会对另一个切片器产生任何影响。嗨,杰夫,你有关于这个的视频教程吗。因为我也有同样的问题。我正试图用一个切片器控制透视表和excel表,但无法做到。我尝试在宏中的透视表上粘贴代码。它仍然不能像上面所示那样工作。Hi-Jitesh。您的数据透视表的名称是什么?嗨,Jeff,基本上我已经将所有数据源转换为excel表(Ctr+T),所以如果我添加任何新值,它将自动添加到我的数据透视表中。现在的问题是,我创建了两个切片器,一个来自excel表,另一个来自此数据透视表。为了便于参考,我附上了示例文件(Example.xlsx),您可以找到“DataSource_选项卡”和“Pivot_选项卡”。如果我在一个切片器中进行更改,则不会对另一个切片器产生任何影响。