Excel VBA - Добавление фильтра меток столбца - PullRequest
0 голосов
/ 09 января 2019

Я создал сводную таблицу с количеством дней с момента последнего просмотра в качестве столбца. Я хочу добавить фильтр к меткам столбцов, чтобы показывать только те элементы, которые не были обнаружены в течение 6 или более дней. Когда я запускаю следующий код, он не фильтрует его правильно. Он отображает 6, 8 и 9 дней, прошедших с момента последнего просмотра, но мне нужно все, что больше 6. Я знаю, что должно появиться еще много элементов, поэтому это не проблема с исходными данными. Все работает, кроме фильтрации меток столбцов. Любая помощь приветствуется.

Sub OBPivotTable()

'Declare Variables
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long

'Insert a New Blank Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("PivotTable").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "PivotTable"
Application.DisplayAlerts = True
Set PSheet = Worksheets("PivotTable")
Set DSheet = Worksheets("train-details-outbound")

'Define Data Range
LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Range("A1").CurrentRegion

'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange). _
CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _
TableName:="OB Dwell")

'Insert Blank Pivot Table
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(1, 1), TableName:="OB Dwell")

'Insert Row Fields
With ActiveSheet.PivotTables("OB Dwell").PivotFields("CLM Status")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("OB Dwell").PivotFields("Location")
.Orientation = xlRowField
.Position = 2
End With

'Insert Data Field
With ActiveSheet.PivotTables("OB Dwell").PivotFields("Container #")
.Orientation = xlDataField
.Name = "OB Dwell"
End With

'Insert Column Fields and add label filter for >=6 days
With ActiveSheet.PivotTables("OB Dwell").PivotFields("Last Sighted Days")
.Orientation = xlColumnField
.Position = 1
End With

'Format Pivot Table
ActiveSheet.PivotTables("OB Dwell").ShowTableStyleRowStripes = True
ActiveSheet.PivotTables("OB Dwell").TableStyle2 = "PivotStyleMedium9"

'Adjust column C so it's not bigger than other columns
Columns("C:C").ColumnWidth = 2.5

'Filter columns to show items last seen 6 or more days ago
With ActiveSheet.PivotTables("OB Dwell").PivotFields("Last Sighted Days")
.PivotFilters.Add Type:=xlCaptionIsGreaterThanOrEqualTo, Value1:="6"
End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...