【问题标题】:EXCEL: Format cells based on style of adjacent Pivot TableEXCEL:根据相邻数据透视表的样式格式化单元格
【发布时间】:2018-06-25 09:07:09
【问题描述】:

我正在尝试开发一个主要是数据透视表的报告,但其中一些相邻单元格用于其他一些(不可数据透视表)文本值。

每周都会刷新数据透视表,并且带有子标题等的行将根据基础数据移动。

每次发生这种情况时,我都必须手动设置这些相邻单元格的格式以匹配数据透视表的格式。

请问有谁知道如何让单元格继承数据透视表的格式“样式”?

这是我想要实现的目标的说明:

提前致谢!

【问题讨论】:

  • 不可透视表区域是如何定义的?

标签: excel vba formatting pivot-table cell


【解决方案1】:

在工作簿模块中尝试这样的操作:

Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
    Dim c As Range
    With Target.DataBodyRange
        Set c = .Columns(.Columns.Count)
    End With
    With c.End(xlToRight)
        .CurrentRegion.ClearFormats
        c.Copy
        .PasteSpecial Paste:=xlPasteFormats
        Application.CutCopyMode = False
    End With
End Sub

【讨论】:

  • 是的。试试看;-)
  • 对我来说仍然没有运气:-(可能是我的那些天之一。
  • 您知道更改样式不会触发透视更新事件 - 所以尝试更改样式,然后刷新透视表
  • 试试这个sample workbook:刷新数据透视表,格式应该复制到右边的非数据透视范围。
  • 哇,这真是太棒了。我没有提到只有一列需要重新格式化,但我可以根据需要进行调整。谢谢奥利!
【解决方案2】:

您可以在数据透视表的第一列({ACC、ACT、BAS 等})中创建主要类别的命名列表。假设 [ACC] 在单元格 A5 中,您可以使用以下公式有条件地格式化非数据透视表:

=IFERROR(MATCH(A5,Named_List,0),0)>0

【讨论】:

  • 我也喜欢这种方法。谢谢你的 MV - 这太棒了。
猜你喜欢
  • 1970-01-01
  • 2016-06-10
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多