В настоящее время у меня есть сводная таблица, которая создала выписку о неоплаченных счетах, которая фильтруется по имени учетной записи. Я хотел бы создать макрос, в котором 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