Note: The other languages of the website are Google-translated. Back to English

如何在Excel中通过工作表滚动来保持数据透视表切片器移动?

在使用数据透视表时,您可以插入切片器以可视化方式过滤表中的数据。 本文讨论的是在滚动工作表时始终保持透视表切片器始终可见。

使用VBA代码通过工作表滚动保持数据透视表的切片器移动


使用VBA代码通过工作表滚动保持数据透视表的切片器移动

以下VBA脚本可以帮助您使数据透视表的切片器随工作表一起移动。 请执行以下操作。

1。 按 其他 + F11 同时打开 Microsoft Visual Basic应用程序 窗口。

2。 在里面 Microsoft Visual Basic应用程序 窗口,双击 的ThisWorkbook 在左侧“项目”窗格中,然后将以下VBA代码复制并粘贴到 本工作簿(代码) 窗口。 看截图:

VBA代码:通过工作表滚动使数据透视表的切片器保持移动

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ShF As Shape
    Dim ShM As Shape
    'specify a slicer
    Application.ScreenUpdating = False
    Set ShF = ActiveSheet.Shapes("Column1")
    Set ShM = ActiveSheet.Shapes("Column2")
    'change position of the slicer
    With Windows(1).VisibleRange.Cells(1, 1)
        ShF.Top = .Top
        ShF.Left = .Left + 300
        ShM.Top = .Top
        ShM.Left = .Left + 100
    End With
    Application.ScreenUpdating = True
End Sub

说明:

1)。 在代码中,Column1和Column2是切片器的名称。

2)。 您可以在滚动代码中的工作表时指定切片器的位置。

3)。 您可以根据需要在代码中添加更多切片器,也可以从中删除切片器。

3。 按 其他 + Q 关闭键 Microsoft Visual Basic应用程序 窗口对话框。

从现在开始,在滚动工作表时,指定的切片器将与活动单元格一起移动。 看截图:


相关文章:


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (10)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
嗨,
感谢您提供此 VBA。

我完全不知道 VBA,因此我的问题。

我使用了这个 VBA,我有一个问题。
我如何更改此 VBA 使其仅适用于一张纸。

现在,我有 8 张工作表,每次我转到另一张工作表时,它都会失败并要求我结束或调试。
我已经完全按照上面所示的方式完成了。


这是我的VBA ..
Private Sub Workbook_SheetSelectionChange(ByVal Sh 作为对象,ByVal 目标作为范围)
将 ShF 调暗为形状
将 ShM 调暗为形状
'指定一个切片器
Application.ScreenUpdating = False
设置 ShF = ActiveSheet.Shapes("Client 1")
设置 ShM = ActiveSheet.Shapes("提醒 1")
'改变切片器的位置
使用 Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .Top + 2
ShF.左 = .左 + 475
ShM.Top = .Top + 180
ShM.Left = .Left + 475
结束
Application.ScreenUpdating =真
END SUB


请大家帮忙。
该评论由网站上的主持人最小化
嗨,
感谢您提供此 VBA。

我完全不知道 VBA,因此我的问题。

我使用了这个 VBA,我有一个问题。
我如何更改此 VBA 使其仅适用于一张纸。

现在,我有 8 张工作表,每次我转到另一张工作表时,它都会失败并要求我结束或调试。
我已经完全按照上面所示的方式完成了。


这是我的VBA ..
Private Sub Workbook_SheetSelectionChange(ByVal Sh 作为对象,ByVal 目标作为范围)
将 ShF 调暗为形状
将 ShM 调暗为形状
'指定一个切片器
Application.ScreenUpdating = False
设置 ShF = ActiveSheet.Shapes("Client 1")
设置 ShM = ActiveSheet.Shapes("提醒 1")
'改变切片器的位置
使用 Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .Top + 2
ShF.左 = .左 + 475
ShM.Top = .Top + 180
ShM.Left = .Left + 475
结束
Application.ScreenUpdating =真
END SUB


请大家帮忙。
该评论由网站上的主持人最小化
亲爱的约翰,
切换到您希望 VBA 代码仅用于的工作表,然后右键单击工作表选项卡并从上下文菜单中选择查看代码。
然后将下面的 VBA 代码复制并粘贴到打开的代码窗口中。 见下面的截图:

Private Sub Worksheet_SelectionChange(作为范围的ByVal目标)
将 ShF 调暗为形状
将 ShM 调暗为形状
'指定一个切片器
Application.ScreenUpdating = False
设置 ShF = ActiveSheet.Shapes("水果")
设置 ShM = ActiveSheet.Shapes("Sale")
'改变切片器的位置
使用 Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .Top
ShF.左 = .左 + 300
ShM.Top = .Top
ShM.Left = .Left + 100
结束
Application.ScreenUpdating =真
END SUB
查看附件 (1 / 5)
该评论由网站上的主持人最小化
亲爱的水晶,

非常感谢您提供的代码。
我完全按照你说的做了,它就像一个魅力。

真的很感激。
干杯:)
该评论由网站上的主持人最小化
嗨,我已经按照您的指示更新了我的代码。 切片器不再随窗口滚动,但是如果我单击新单元格,则切片器将移动。 这是正确的行为吗?
该评论由网站上的主持人最小化
第一行表示什么,我们如何自定义它以适合我们的切片器?
我基本上在每一行都对此感到非常困惑。
该评论由网站上的主持人最小化
亲爱的凯蒂
我不知道我是否完全理解你的问题。
正如我在上面的注释中提到的,您需要将 Column1 和 Column2 替换为代码中切片器的名称,以使切片器随着工作表滚动。
该评论由网站上的主持人最小化
我有 4 个切片器,通过选择所有 4 个切片器并右键单击以使用 group 命令将它们组合在一起。

是否可以按组分配此 VBA? 您如何标记该组并编写 VBA 以将其识别为一个组?
该评论由网站上的主持人最小化
喜迈克尔,
抱歉帮不上忙。 谢谢你的评论。
该评论由网站上的主持人最小化
好的,所以标题是“如何保持数据透视表切片器随工作表移动 滚动 在 Excel 中?”,但是这个 VBA 代码只对当前选定的单元格执行此操作,我们如何为 滚动 的工作簿,而不仅仅是选定的单元格?
这里还没有评论

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护