Значение по умолчанию для фильтра отчета сводной диаграммы/поля страницы
Вопрос
Я создаю сводную диаграмму в Excel 2002 с помощью макроса, используя поле даты в качестве фильтра отчета диаграммы (устанавливая ориентацию поля на xlPageField).Я хотел бы установить выбранное по умолчанию значение этого сводного поля на самое последнее значение в поле даты.Каков правильный синтаксис для этого в VBA?
Решение
Разве вы не можете просмотреть все элементы этого поля страницы?Вот сводная таблица, но заставить ее работать на диаграмме не составит большого труда:
Sub Main()
Dim pvt As PivotTable
Dim fld As PivotField
Dim itm As PivotItem
Dim m As Variant
Set pvt = Worksheets(1).PivotTables(1)
Set fld = pvt.PageFields(1)
m = fld.PivotItems(1)
For Each itm In fld.PivotItems
If itm.Value > m Then m = itm.Value
Next itm
fld.CurrentPage = m
End Sub
Другие советы
Разве вы не хотите просто выбрать ячейку после динамического создания диаграммы?
Что-то вроде:
Dim value As Date
value = "1-apr-09"
Dim row As Integer
row = 0
Dim keeplooping As Boolean
keeplooping = True
While (keeplooping)
row = row + 1
If Range("B" & row).value = value Then
keeplooping = False
Range("B" & row).Select
MsgBox ("found it")
ElseIf Range("B" & row).value = "" Then
keeplooping = False
MsgBox ("Not found")
End If
Wend
диаграммаОбъект.PivotLayout.PivotTable.PivotFields("имя поля").ТекущаяСтраница = "полеЗначение"
Это из Excel 2003, но я предполагаю, что в 2002 году будет то же самое.