Я использую приведенный ниже код для циклического перемещения по элементам фильтра в сводной таблице, а затем копирую отфильтрованные результаты.
Но по какой-то причине в коде не учитываются элементы, которые не имеют результатов, и вместо этого, похоже, вместо этого копируются предыдущие результаты.
У меня есть обработка ошибок в коде для элементов, которые не показывают результатов, но, похоже, это не работает - при просмотре кода он пропускает «если», которое я поместил, чтобы поймать «ничего» .
Затем (когда он попадает в часть кода для копирования / вставки) копируются (теперь скрытые) ячейки, которые были видны под последним элементом, выбранным в фильтре в предыдущем цикле.
Я пропустил конец кода, так как он становится немного длинным и все работает, это всего лишь бит с видимыми ячейками, которые я не могу заставить работать.
Sub Bulletin_Chase()
Dim pt As PivotTable
Dim pi As PivotItem
Set pt = Worksheets("By User").PivotTables("PivotTable1")
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
For Each pi In pt.PageFields("Supplier").PivotItems
pt.PageFields("Supplier").CurrentPage = pi.Name
With Range("Filters")
.AutoFilter Field:=2, Criteria1:=Array("false"), Operator:=xlFilterValues
End With
On Error Resume Next
Set rng = Worksheets("By User").Range("Bulletin_List").SpecialCells(xlCellTypeVisible)
If rng Is Nothing Then
Worksheets("By User").AutoFilterMode = False
Range("Filters").AutoFilter
GoTo Continue
End If
и т.д ...
Действительно борюсь с этим, поэтому любая помощь от вас, гениев, будет принята с благодарностью.