Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel中的过滤器透视图_Vba_Excel_Excel 2007_Excel 2003 - Fatal编程技术网

Vba Excel中的过滤器透视图

Vba Excel中的过滤器透视图,vba,excel,excel-2007,excel-2003,Vba,Excel,Excel 2007,Excel 2003,如果我将区域语言格式设置为英语(英国),则此筛选器有问题。如果我使用英语(美国),则效果良好。 我的问题是,筛选器没有使5月30日的选择不可见,它在该调用中失败并转到错误部分 这是已知的bug吗 它过滤日期,同时发布 子过滤器() 将PvtItem设置为数据透视项 将ws设置为工作表 关于错误转到Whoa1 设置ws=图纸(“轴”) “~~>全部显示 对于ws.PivotTables(“数据透视表1”).PivotFields(“日期”).PivotItems中的每个PvtItem PvtIt

如果我将区域语言格式设置为英语(英国),则此筛选器有问题。如果我使用英语(美国),则效果良好。 我的问题是,筛选器没有使5月30日的选择不可见,它在该调用中失败并转到错误部分

这是已知的bug吗

它过滤日期,同时发布

子过滤器()
将PvtItem设置为数据透视项
将ws设置为工作表
关于错误转到Whoa1
设置ws=图纸(“轴”)
“~~>全部显示
对于ws.PivotTables(“数据透视表1”).PivotFields(“日期”).PivotItems中的每个PvtItem
PvtItem.Visible=True
下一个
出错时转到Whoa2“全部显示”
对于ws.PivotTables(“数据透视表1”).PivotFields(“日期”).PivotItems中的每个PvtItem
PvtItem.Visible=True
下一个
端接头

在EXCEL 2003中试用和测试(使用英国设置)

右键单击快照中显示的日期字段,然后单击
字段设置
,然后单击
编号
。如图所示设置日期格式。现在尝试相同的代码


抱歉不清楚添加了更好的描述
Sub Filter()
    Dim PvtItem As PivotItem
    Dim ws As Worksheet

    On Error GoTo Whoa1

    Set ws = Sheets("pivot")

    '~~> Show All
    For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems
        PvtItem.Visible = True
    Next

    On Error GoTo Whoa2 '<~~ If no match found in Pivot

    '~~> Show Only the relevant
    For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems
        If Format(PvtItem.Value, "DD/MM/YYYY") <> Format(Range("today"), "DD/MM/YYYY") Then
            PvtItem.Visible = False
        End If
    Next

    Exit Sub
Whoa1:
    MsgBox Err.Description
    Exit Sub
Whoa2:
    '~~> Show All
    For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems
        PvtItem.Visible = True
    Next
End Sub