Создать PDF для каждого сводного фильтра - PullRequest
0 голосов
/ 22 января 2020

В настоящее время у меня есть сводная таблица, которая создала выписку о неоплаченных счетах, которая фильтруется по имени учетной записи. Я хотел бы создать макрос, в котором Excel делает заявление в формате PDF для каждой учетной записи.

Я не знаю VBA, поэтому я получил приведенный ниже код, выполнив поиск в Google и отредактировав его для своей сводной таблицы.

Однако, когда я пытаюсь запустить его, Excel не нравится эта строка «.CurrentPage = pi.Name». Когда я вынимаю это, он запускается и создает несколько PDF-файлов с правильным именем учетной записи, но все утверждения одинаковы.

Кто-нибудь может помочь?

Option Explicit
Sub test()
Dim strPath As String
Dim wksSource As Worksheet
Dim PT As PivotTable
Dim pf As PivotField
Dim pi As PivotItem

Set wksSource = Worksheets("AP Pivot")

Set PT = wksSource.PivotTables("PivotTable1")

Set pf = PT.PivotFields("ACCOUNT")

If pf.Orientation <> xlPageField Then
MsgBox "There's no 'ACCOUNT' field in the Report Filter. Try again!", vbExclamation
Exit Sub
End If

strPath = "T:\"

If Right(strPath, 1) <> "\" Then strPath = strPath & "\"

ActiveWorkbook.ShowPivotTableFieldList = False

PT.PivotCache.Refresh

With pf
.ClearAllFilters
For Each pi In .PivotItems
.CurrentPage = pi.Name
wksSource.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath & pi.Name & ".pdf"
Next pi
.ClearAllFilters
End With
End Sub

1 Ответ

0 голосов
/ 27 января 2020

Проблема, с которой вы столкнулись, состоит в том, что в коллекции сводных элементов вашего поля "Учетная запись" по-прежнему есть значения, которых больше нет в ваших данных. Таким образом, ваш фильтр устанавливается на значение, которое недоступно. Чтобы это исправить, вы добавляете pt.PivotCache.MissingItemsLimit = xlMissingItemsNone непосредственно перед PT.PivotCache.Refresh.

. Это удаляет все недостающие элементы из вашей коллекции сводных элементов.

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