Macro Debug on Pivot Table
simplistically, you could put an
ON ERROR RESUME NEXT
before these statements.
However, while efficient, its not good practice
ideally you sould pass the field name to a function that handles any error
and rturns true/false for example
If FieldExists("271 - 365 days") Then
..PivotFields("Agings").PivotItems( _
"271 - 365 Days").Position = 8
End If
your function would be
Functiob FieldExists(sfield as string) as boolean
on error resume next
dim pf as pivotitem
set pf = .PivotFields("Agings").PivotItems( _
"271 - 365 Days")
FieldExists = (err.Number=0)
err.clear
on error goto 0
End Functon
"Gaffnr" wrote:
Hi All,
I have created a macro that i have been using for some time to create a
pivot table.
The macro reads the data from a data tab and creates a pivot table in
another tab.
Ive never encountered this problem until today and its because i specify the
order of the column field and ive hit for the the first time when there are
no matches.
For example, I have a column in my data tab that contains an aging bucket
(0-30 days, 31-60 days, 61 - 90 days etc up to 365+ days).
Because when the pivot table is created my macro does not order these in the
correct sequence in the column area of the Pivot - i.e. it shows them as 0-30
days, then 120-150 days, then 365+ days then 31-60 days etc. I added a macro
statement to order these in the correct order, however when my macro reaches
the following statement, it bugs out:
'ActiveSheet.PivotTables("AgedUSD").PivotFields("A gings").PivotItems( _
"271 - 365 Days").Position = 8
The reason is that there are no items in the data tab that have an age
bucket of 271-365 days and thus it cant build a column.
Basically i need the statement to say if there are no matches skip, if not
order them as requested.
Please help - im totally stuck.
Rob
NB - i 'remmed out this statement and ran the macro which worked.
--
Rob Gaffney
|