введите описание изображения здесь Я написал код для своего набора данных, чтобы каждый раз, когда я нажимал на кнопку, он переключался на список полей, который я выбрал.Но легенда на моем графике гласит «Всего» вместо названия списка полей.Как изменить название легенды?Я довольно новичок в VBA, кстати.
Спасибо.
ActiveSheet.ChartObjects("Chart 1").Chart.ChartTitle.Text = "2019 Revenue"
Это код, который я использовал для изменения названия диаграммы.Мне просто нужно найти способ изменить название легенды сейчас.Я пытался использовать для этого Macro Recorder, но похоже, что обычный график и сводная диаграмма разные.
Sub Add_Value_MasterCode()
Dim pt As PivotTable
Dim pf As PivotField
Dim SField As String
'Set Variable
Set pt = ActiveSheet.PivotTables(1)
SField = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
'Remove Existing Fields
For Each pf In pt.DataFields
If pf.Name <> "Values" Then
pf.Orientation = xlHidden
End If
Next pf
'Add fields that button was clicked for
pt.PivotFields(SField).Orientation = xlDataField
'Set title and color for each fields
If SField = "2016" Then
ActiveSheet.ChartObjects("Chart 1").Chart.ChartTitle.Text = "2016 Revenue"
With ActiveSheet.ChartObjects("Chart 1").Chart.FullSeriesCollection(1).Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
ElseIf SField = "2017" Then
ActiveSheet.ChartObjects("Chart 1").Chart.ChartTitle.Text = "2017 Revenue"
With ActiveSheet.ChartObjects("Chart 1").Chart.FullSeriesCollection(1).Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent2
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
ElseIf SField = "2018" Then
ActiveSheet.ChartObjects("Chart 1").Chart.ChartTitle.Text = "2018 Revenue"
With ActiveSheet.ChartObjects("chart 1").Chart.FullSeriesCollection(1).Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent3
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
ElseIf SField = "2019" Then
ActiveSheet.ChartObjects("Chart 1").Chart.ChartTitle.Text = "2019 Revenue"
With ActiveSheet.ChartObjects("Chart 1").Chart.FullSeriesCollection(1).Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent4
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
End If
End Sub