【问题标题】:Filtering dates in PivotTable = nightmare. Code works sometimes, and sometimes not在数据透视表中过滤日期 = 噩梦。代码有时有效,有时无效
【发布时间】:2014-10-01 08:07:43
【问题描述】:

我在使用数据透视表中的过滤器时遇到了很多问题。到目前为止,我发现成功的唯一方法是通过添加虚拟日期来删除数据列表中的任何空白。一旦我在数据透视表的源范围内只有一种类型的数据,我可以对数字(“0.00”)执行 pivotfields.numberformat,然后过滤器工作,我可以将数据放回“dd/mm/yyyy” .

我知道可以在源范围内使用此方法(pivotitem.visible = true / false),但我没有成功。

这里有两个文件,相同的数据,相同的数据透视表,相同的代码。一个有效,另一个无效。如果我能找出原因,它可能会帮助我更好地理解问题。

有效的代码:

http://cjoint.com/14sp/DIExZVpRxgC.htm

不起作用的代码:

http://cjoint.com/14sp/DIEx0ru5BgM.htm

提前感谢您的帮助

特威迪

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    回到我的初始文件,我设法取得了一些进展。请在这里找到我的文件: http://cjoint.com/14oc/DJbb2yqJ5XQ.htm

    通过将其添加到代码中,我设法在“(空白)”上应用 PivotItem.Visible 属性:

    mytable.ManualUpdate = True
    Dim pf As PivotField
    Set pf = ActiveSheet.PivotTables(1).PivotFields("date closed")
    pf.AutoSort xlManual, pf.SourceName
    

    现在将其他日期与最大日期进行比较时,它不起作用,我认为这是因为它将 dd/mm/yyyy 与 mm/dd/yyyy 进行比较(我不确定,但请看在打印屏幕上):http://i62.tinypic.com/wv7o9l.jpg

    有什么帮助吗?谢谢!

    特威迪

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 2023-02-11
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多