Vba Excel中的过滤器透视图
如果我将区域语言格式设置为英语(英国),则此筛选器有问题。如果我使用英语(美国),则效果良好。 我的问题是,筛选器没有使5月30日的选择不可见,它在该调用中失败并转到错误部分 这是已知的bug吗 它过滤日期,同时发布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
子过滤器()
将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