Запись макроса создания сводной диаграммы. Создание сводной таблицы и диаграммы, а затем редактирование свойств диаграммы.
Код работает нормально, пока не попытается изменить свойства диаграммы. В этот момент я получаю это сообщение:
"Ошибка времени выполнения" 2147024809 (80070057) '
Элемент с указанным именем не найден
Кажется, проблема заключается в именовании диаграммы. Пример: когда я записываю макрос, Excel называет диаграмму "Диаграмма 1". Но когда я воссоздаю сценарий, тогда диаграмма называется "Диаграмма 2" и поэтому макрос не работает. Если я go и вручную изменяю имя на «Диаграмма 2», код завершает выполнение нормально.
Если я пытаюсь назвать диаграмму во время записи макроса, я сталкиваюсь с подобным проблема, т. е. он пытается изменить «Диаграмма 1» на «Новое имя диаграммы», но не может найти «Диаграмму 1».
Не слишком опытен с VBA, но я предполагаю, что есть какой-то способ назвать диаграмму. Я пытался добавить простую ...
ActiveChart.Name = "Name of this Chart"
... после создания диаграммы, но это не сработало.
Full код ниже. Любая помощь очень ценится!
'
' Create_NITS_Pivot Macro
'
'
Columns("A:AE").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"'Tags Data Dump'!R1C1:R200C31", Version:=6).CreatePivotTable _
TableDestination:="'NITS Pivot Chart'!R1C1", TableName:="PivotTable15", _
DefaultVersion:=6
Sheets("NITS Pivot Chart").Select
Cells(1, 1).Select
With ActiveSheet.PivotTables("PivotTable15")
.ColumnGrand = True
.HasAutoFormat = True
.DisplayErrorString = False
.DisplayNullString = True
.EnableDrilldown = True
.ErrorString = ""
.MergeLabels = False
.NullString = ""
.PageFieldOrder = 2
.PageFieldWrapCount = 0
.PreserveFormatting = True
.RowGrand = True
.SaveData = True
.PrintTitles = False
.RepeatItemsOnEachPrintedPage = True
.TotalsAnnotation = False
.CompactRowIndent = 1
.InGridDropZones = False
.DisplayFieldCaptions = True
.DisplayMemberPropertyTooltips = False
.DisplayContextTooltips = True
.ShowDrillIndicators = True
.PrintDrillIndicators = False
.AllowMultipleFilters = False
.SortUsingCustomLists = True
.FieldListSortAscending = False
.ShowValuesRow = False
.CalculatedMembersInFilters = False
.RowAxisLayout xlCompactRow
End With
With ActiveSheet.PivotTables("PivotTable15").PivotCache
.RefreshOnFileOpen = False
.MissingItemsLimit = xlMissingItemsDefault
End With
ActiveSheet.PivotTables("PivotTable15").RepeatAllLabels xlRepeatLabels
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("'NITS Pivot Chart'!$A$1:$C$18")
ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _
PivotTable.PivotFields("NITS 16"), "Sum of NITS 16", xlSum
ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _
PivotTable.PivotFields("NITS 17"), "Sum of NITS 17", xlSum
ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _
PivotTable.PivotFields("NITS 18"), "Sum of NITS 18", xlSum
ActiveChart.Name = "NITS_Chart"
With ActiveChart.PivotLayout.PivotTable.DataPivotField
.Orientation = xlRowField
.Position = 1
End With
With ActiveChart.PivotLayout.PivotTable.PivotFields("Utility Acct/Cust#")
.Orientation = xlPageField
.Position = 1
End With
With ActiveChart.PivotLayout.PivotTable.PivotFields("Sub-account name")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.Shapes("Chart 2").IncrementLeft -1030.5
ActiveSheet.Shapes("Chart 2").IncrementTop -192.5
End Sub