Изменить заголовок сводной диаграммы - PullRequest
0 голосов
/ 28 декабря 2018

Кажется, я не могу понять, как заставить изменить заголовок моей сводной диаграммы и показать его.Псевдокод ниже:

Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim PChart As ChartObject

lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 3

'Set data range
Set PRange = .Cells(1, 1).Resize(lastRow - 3, 11)

Set PCache = wb2.PivotCaches.Create _
    (SourceType:=xlDatabase, SourceData:=PRange)

Set PTable = PCache.CreatePivotTable(TableDestination:=.Cells(lastRow, 6), _
    TableName:="VarietyByTerritoryTable")

Это все работает как задумано.Переменная lastRow является привередливой, но выполняет свою работу.Это все в блоке With.После этого у меня есть код, который добавляет поля в таблицу PTable, но работает нормально, поэтому я решил пропустить.Теперь я создаю график.Обратите внимание, что на самом деле создание диаграммы работает нормально, я просто не могу отобразить заголовок.

Set PChart = wb2.Sheets(1).ChartObjects.Add(300, 200, 550, 200)
With PChart
    .Chart.SetSourceData PTable.TableRange2
    .Chart.ChartType = xlAreaStacked
    .Name = "Territory"
    .SetElement (msoElementChartTitleAboveChart)
    .ChartTitle.Text = strVar & " in " & strTerr
End With

Ошибка отображается в строке .SetElement().Пара вопросов:

а) Кто-нибудь знает, как это исправить?Я думаю, это должно быть относительно просто, но я провел последние несколько часов, просматривая информацию в Интернете, и не мог найти много: /

b) что делают числа в .ChartObjects.Add(##, ##, ###, ##)?Они меняют местоположение, которое я предполагаю.Имеют ли последние два значения размер диаграммы?

в) Можно ли сделать заголовок диаграммы именем из TableName в бите Set PTable = PCache.CreatePivotTable(TableDestination:=.Cells(lastRow, 6), _ TableName:="VarietyByTerritoryTable")?Если да, могу ли я иметь пробелы в части TableName?(т.е. измените на TableName := "Variety By Territory")

d) тот же вопрос, но с PChart.Name.Могу ли я сделать из этого заголовок, и если да, то должен ли я избегать пробелов?

Спасибо всем!

1 Ответ

0 голосов
/ 28 декабря 2018
  1. Вам не хватает .Chart в вашей строке SetElement.Попробуйте это:

    .Chart.SetElement (msoElementChartTitleAboveChart)
    .Chart.ChartTitle.Text = strVar & " in " & strTerr
    
  2. Для ChartObjects Method вы правы, последние 2 значения относятся к ширине и высоте.

  3. Конечно, вы можете сделать имя диаграммы таким же, как и имя таблицы, и да, в именах сводных таблиц допустимы пробелы.

  4. То же самое для заголовков диаграмм, пробелыхорошо.

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